15#define DO_DATASPACE_CONSISTENCY_CHECK
18 int*major_version,
int*minor_version,
int*release_version)
24 F5printf(50,
"F5Fget_field_enum(%s)", fieldname);
28 F5printf(50,
"F5Fget_field_enum(%s): No valid F5Path given.", fieldname);
29 *major_version = *minor_version = *release_version = 0;
44 F5printf(50,
"F5Fget_field_enum(%s): Cannot determine field type!", fieldname);
53 major_version, minor_version, release_version);
58 case 0: H5Dclose(loc_id);
break;
61 F5printf(50,
"~F5Fget_field_enum(%s)", fieldname);
81 F5printf(10,
"F5Fopen(,%s) Path entry is neither a group nor a data set (could be a named data type)\n", fieldname);
128 if (!fpath)
return 0;
129 if (H5Iget_type( fpath->
Field_hid ) == H5I_GROUP)
137 if (!fpath)
return 0;
141 herr_t status = H5Gget_objinfo(fpath->
Field_hid, fragment_name, 0, &info);
146 if (info.type == H5G_GROUP)
148 F5printf(5,
"F5Ffragment_is_group == true");
184#ifdef F5_BACKWARD_COMPATIBILITY
185 if (rank<0 && f->Field_hid>0)
188 " not found on enveloping Topology, inspecting dataset.");
191 if (rank<0 && f->Field_hid>0)
194 " not found on data set, trying old `Size' attribute\n");
200 F5printf(40,
"F5Tget_space(): no data dims attribute found, returning field's data space...\n" );
205 F5printf(40,
"F5Tget_space(): rank could not be determined...\n");
209 F5printf(40,
"F5Tget_space(): F5LAget_dimensions() reported rank %d\n", rank);
212 for(i=0; i<rank; i++)
216 F5printf(40,
"F5Tget_space(): No topology associated...\n");
222 return H5Screate_simple(rank, dims, dims );
236 mrank = H5Sget_simple_extent_dims(space_id, mdims, NULL);
247 for(i=0; i<mrank; i++)
257 F5printf(40,
"F5Fget_index_depth()");
269 F5printf(40,
"F5Fget_index_depth(): could not read index depth attribute");
280 const hsize_t*source_dims)
283 F5printf(50,
"F5Tpermute_dimensions()");
286 if( !target_dims || !source_dims)
288 F5printf(40,
"F5Tpermute_dimensions() Invalid target or source");
294 for(i=0; i<rank; i++)
295 if (source_dims[i])
break;
299 for(i=0; i<rank; i++)
300 target_dims[i] = source_dims[i];
302 F5printf(40,
"F5Tpermute_dimensions() All source data are zero, skipping permutation...");
309 F5printf(50,
"F5Tpermute_dimensions() No Chart given, assuming default (FORTRAN) index permutation!");
312 F5printf(50,
"F5Tpermute_dimensions() params ok, rank=%d.", rank);
313 for(
int i=0; i<rank; i++)
314 F5printf(50,
"F5Tpermute_dimensions() source[%d]=%d.", i, source_dims[i] );
329 hid_t fieldtype, hid_t property_id)
335 if (!fpath)
return 0;
345 F5printf(-1,
"F5Fcreate(%s): cannot create, inconsistent dataspace!", fieldname);
355 F5printf(0,
"F5Fcreate -> F5Lcreate() FAILED!");
383 default:
return "Invalid error code (compile-time bug)";
390 int rank, hsize_t*dims,
391 hid_t fieldtype, hid_t memtype,
const void * dataPtr,
392 hid_t property_id,
int do_check )
396 F5printf(40,
"F5Fwrite(%s, rank=%d, dims=%dx%dx%dx%d)", fieldname, rank, rank>0?(
int)dims[0]:1,
397 rank>1?(
int)dims[1]:1,rank>2?(
int)dims[2]:1, rank>3?(
int)dims[3]:1
414 fieldtype, memtype, dataPtr,
422 F5printf(41,
"F5Fwrite(%s): permuted dims: rank=%d, dims=%dx%dx%dx%d)", fieldname, rank,
423 rank>0?(
int)save_dims[0]:1, rank>1?(
int)save_dims[1]:1, rank>2?(
int)save_dims[2]:1, rank>3?(
int)save_dims[3]:1 );
430 F5printf(-1,
"F5Fwrite(%s): cannot write 3D field, inconsistent 3D dataspace, trying to write %dx%dx%d as HDF5 dataspace %dx%dx%d (run again with F5_VERBOSITY=30 to see more details)!",
431 fieldname, (
int)dims[0], (
int)dims[1], (
int)dims[2],
432 (
int)save_dims[0], (
int)save_dims[1], (
int)save_dims[2]
435 F5printf(-1,
"F5Fwrite(%s): cannot write field, inconsistent dataspace (run again with F5_VERBOSITY=30 to see more details)!", fieldname);
440 F5printf(-1,
"F5Fwrite(%s): warning during field write, inconsistent dataspace!", fieldname);
453 F5printf(3,
"F5Fwrite(): F5Lwrite() FAILED!");
468 int rank, hsize_t*dims,
469 hid_t fieldtype, hid_t memtype,
const void * dataPtr,
472 return F5Fwrite_flexible( fpath, fieldname, rank, dims, fieldtype, memtype, dataPtr, property_id, 1 );
477 int rank, hsize_t*dims,
478 hid_t fieldtype, hid_t memtype,
const void * dataPtr,
483 return F5Fwrite_flexible( fpath, fieldname, rank, dims, fieldtype, memtype, dataPtr, property_id, 0 );
488 int rank, hsize_t*dims,
489 hid_t fieldtype, hid_t memtype,
const void * dataPtr,
495 F5printf(40,
"F5FwriteIMAGE(%s, rank=%d, dims=%dx%dx%dx%d) INVALID RANK (must be 2)! \n", fieldname, rank, rank>0?(
int)dims[0]:1,
496 rank>1?(
int)dims[1]:1,rank>2?(
int)dims[2]:1, rank>3?(
int)dims[3]:1
501 F5printf(40,
"F5FwriteIMAGE(%s, rank=%d, dims=%dx%dx%dx%d)\n", fieldname, rank, rank>0?(
int)dims[0]:1,
502 rank>1?(
int)dims[1]:1,rank>2?(
int)dims[2]:1, rank>3?(
int)dims[3]:1
513 F5printf(41,
"F5Fwrite(%s): permuted dims: rank=%d, dims=%dx%dx%dx%d)\n", fieldname, rank,
514 rank>0?(
int)save_dims[0]:1, rank>1?(
int)save_dims[1]:1, rank>2?(
int)save_dims[2]:1, rank>3?(
int)save_dims[3]:1 );
518 F5printf(-1,
"F5Fwrite(%s): cannot create, inconsistent dataspace!", fieldname);
526 fieldtype = H5T_NATIVE_FLOAT;
527 memtype = H5T_NATIVE_FLOAT;
536 F5printf(1,
"F5Fwrite_IMAGE() - FAILED to append field fragment data.");
554 fieldtype = H5T_NATIVE_UCHAR;
555 memtype = H5T_NATIVE_UCHAR;
585 else if (fieldtype == H5T_NATIVE_USHORT)
589 fieldtype = H5T_NATIVE_USHORT;
590 memtype = H5T_NATIVE_USHORT;
611 unsigned short MinMax[] = { 0, 0xFFFF };
613 H5T_NATIVE_USHORT, H5T_NATIVE_USHORT, MinMax, 2);
632 hsize_t nElements, hid_t fieldtype, hid_t memtype,
633 const void * dataPtr, hid_t property_id)
636 F5printf(40,
"F5Fwrite1D(%s)", fieldname);
639 F5printf(41,
"F5Fwrite1D(%s): no fpath given!", fieldname);
644 F5printf(30,
"F5Fwrite1D(%s): No elements given, field not created!",fieldname);
649 F5printf(30,
"F5Fwrite1D(%s): INVALID Representation ID given!",fieldname);
654 F5printf(30,
"F5Fwrite1D(%s): INVALID field type ID given!",fieldname);
661 F5printf(30,
"F5Fwrite1D(%s): CANNOT created file type from field type %d given!",
662 fieldname, (
int)fieldtype );
672 file_type, memtype, dataPtr,
678 F5printf(30,
"F5Fwrite1D(): F5Lwrite1D FAILED!");
691 int rank, hsize_t*dims,
692 hid_t fieldtype, hid_t memtype,
const void ** dataPtr,
699 if (!fpath)
return 0;
709 F5printf(-1,
"F5Fwrites(%s): cannot create, inconsistent dataspace!", fieldname);
717 file_type, memtype, dataPtr,
722 F5printf(1,
"**F5Fwrites(%s) could not write separated compound type!", fieldname);
724 switch( H5Tget_class(file_type ) )
746static int F5B_identical_dims(
int rank,
const hsize_t*A,
const hsize_t*B)
751 for(i=0; i<rank; i++)
762 for(i=0; i<rank; i++)
779 int rank,
const hsize_t*
Dims,
const hsize_t*fraction_dims,
780 hid_t fieldtype, hid_t memtype,
const void * dataPtr,
781 const hsize_t*datastart,
782 const hsize_t*start_border,
const hsize_t*end_border,
783 const char*fraction_name, hid_t property_id)
795 F5printf(0,
"F5Fwrite_fraction() invalid field name!");
800 F5printf(0,
"F5Fwrite_fraction() for field %s has no datastart given for fragment %s",
801 fieldname, fraction_name);
806 F5printf(0,
"F5Fwrite_fraction() for field %s has no fragment dimensions given for fragment %s",
807 fieldname, fraction_name);
821 if (
Dims)
for(i=0; i<rank; i++)
823 if (datastart[i] >=
Dims[i])
825 F5printf(-1,
"F5Fwrite_fraction(%s): fragment starts beyond dataspace in dimension %d: %d (max %d allowed)!",
826 fieldname, i, (
int)datastart[i], (
int)
Dims[i] );
829 if (datastart[i]+fraction_dims[i] >
Dims[i])
831 F5printf(-1,
"F5Fwrite_fraction(%s): fragment extends beyond dataspace in dimension %d: %d (max %d allowed)!",
832 fieldname, i, (
int)(datastart[i]+fraction_dims[i]), (
int)
Dims[i] );
842#ifdef DO_DATASPACE_CONSISTENCY_CHECK
847 F5printf(-1,
"F5Fwrite_fraction(%s): cannot create, inconsistent dataspace!", fieldname);
854 hm, we better drop
this idea of automatically writing a contiguous field
855 if a field covers the full dimension, because then the topology is
856 no longer expandable...
858 if (F5B_identical_dims(rank, full_dims, ldims) && F5B_identical_dims(rank, start_dims, 0) )
868 F5printf(30,
"~F5Fwrite_fraction(%s) wrote contigous field", fieldname);
875 start_border?sborder:NULL, end_border?eborder:NULL,
880 F5printf(0,
"F5Fwrite_fraction(%s) error in writing field, illegal ID returned from low-level function.", fieldname);
905 F5printf(30,
"~F5Fwrite_fraction(%s) wrote fragmented contigous field", fieldname);
914 int rank,
const hsize_t*
Dims,
const hsize_t*fraction_dims,
915 hid_t fieldtype, hid_t memtype,
const void * dataPtr,
916 const hsize_t*datastart,
917 const hsize_t*start_border,
const hsize_t*end_border,
918 const char*fraction_name, hid_t property_id)
938 if (
Dims)
for(i=0; i<rank; i++)
940 if (datastart[i] >=
Dims[i])
942 F5printf(-1,
"F5Fwrite_fractionS(%s): fragment starts beyond dataspace in dimension %d: %d (max %d allowed)!",
943 fieldname, i, (
int)datastart[i], (
int)
Dims[i] );
946 if (datastart[i]+fraction_dims[i] >
Dims[i])
948 F5printf(-1,
"F5Fwrite_fractionS(%s): fragment extends beyond dataspace in dimension %d: %d (max %d allowed)!",
949 fieldname, i, (
int)(datastart[i]+fraction_dims[i]), (
int)
Dims[i] );
959#ifdef DO_DATASPACE_CONSISTENCY_CHECK
964 F5printf(-1,
"F5Fwrite_fractionS(%s): cannot create, inconsistent dataspace!", fieldname);
973 start_border?sborder:NULL, end_border?eborder:NULL,
983 F5printf(10,
"~F5Fwrite_fractionS(%s) temporarily set type attribute...", fieldname);
990 F5printf(30,
"~F5Fwrite_fraction(%s) wrote fragmented contigous field", fieldname);
1003 const char *target_file_name,
1004 const char *target_obj_name,
1007 int rank,
const hsize_t*
Dims,
const hsize_t*fraction_dims,
1008 hid_t fieldtype, hid_t memtype,
const void * dataPtr,
1009 const hsize_t*datastart,
1010 const hsize_t*start_border,
const hsize_t*end_border,
1011 const char*fraction_name, hid_t property_id)
1021 F5printf(30,
"F5Fwrite_fraction_external(%s, rank=%d)", fieldname, rank);
1023 F5printf(20,
"F5Fwrite_fraction_external(%lux%lux%lu)",
1024 (
int)fraction_dims[0], (
int)fraction_dims[1], (
int)fraction_dims[2]);
1026 F5printf(20,
"F5Fwrite_fraction_external(%lux%lu)",
1027 (
int)fraction_dims[0], (
int)fraction_dims[1]);
1029 F5printf(20,
"F5Fwrite_fraction_external(%lu)",
1030 (
int)fraction_dims[0]);
1041 if (
Dims)
for(i=0; i<rank; i++)
1043 if (datastart[i] >=
Dims[i])
1045 F5printf(-1,
"F5Fwrite_fraction(%s): fragment starts beyond dataspace in dimension %d: %d (max %d allowed)!",
1046 fieldname, i, (
int)datastart[i], (
int)
Dims[i] );
1049 if (datastart[i]+fraction_dims[i] >
Dims[i])
1051 F5printf(-1,
"F5Fwrite_fraction(%s): fragment extends beyond dataspace in dimension %d: %d (max %d allowed)!",
1052 fieldname, i, (
int)(datastart[i]+fraction_dims[i]), (
int)
Dims[i] );
1062#ifdef DO_DATASPACE_CONSISTENCY_CHECK
1067 F5printf(-1,
"F5Fwrite_fraction(%s): cannot create, inconsistent dataspace!", fieldname);
1078 rank,
Dims ? full_dims : NULL, ldims,
1081 start_border?sborder:NULL, end_border?eborder:NULL,
1101 F5printf(30,
"~F5Fwrite_fraction(%s) wrote fragmented contigous field", fieldname);
1108int major_version, minor_version, release_version;
1110 &major_version, &minor_version, &release_version);
1130int major_version, minor_version, release_version;
1132 &major_version, &minor_version, &release_version);
1151 for(i=0; i<rank; i++)
1152 if (dims[i]>0)
return 0;
1158 int rank,
const hsize_t*dims,
const hsize_t*frag_dims,
1159 hid_t fieldtype, hid_t memtype,
const void *
const* dataPtr,
1160 const hsize_t*datastart,
1161 const hsize_t*start_border,
const hsize_t*end_border,
1162 const char*fraction_name, hid_t property_id,
1163 int AllowFullCoverage)
1169 F5printf(40,
"F5FSwrite_fraction()");
1179#ifdef DO_DATASPACE_CONSISTENCY_CHECK
1182 F5printf(60,
"F5FSwrite_fraction() : "
1183 "global dims=[%d,%d,%d] datastart=[%d,%d,%d] ldims=[%d,%d,%d]",
1184 (
int)dims[0], (
int)dims[1], (
int)dims[2],
1185 (
int)datastart[0], (
int)datastart[1], (
int)datastart[2],
1186 (
int)ldims[0], (
int)ldims[1] , (
int)ldims[2]
1189 F5printf(60,
"F5FSwrite_fraction()->"
1190 "full dataset=[%d,%d,%d] start=[%d,%d,%d] ldims=[%d,%d,%d]",
1191 (
int)full_dims[0], (
int)full_dims[1], (
int)full_dims[2],
1192 (
int)start_dims[0],(
int)start_dims[1],(
int)start_dims[2],
1193 (
int)ldims[0], (
int)ldims[1] , (
int)ldims[2]
1198 F5printf(60,
"F5FSwrite_fraction() : "
1199 "(no global dims) datastart=[%d,%d,%d] ldims=[%d,%d,%d]",
1200 (
int)datastart[0], (
int)datastart[1], (
int)datastart[2],
1201 (
int)ldims[0], (
int)ldims[1] , (
int)ldims[2]
1204 F5printf(60,
"F5FSwrite_fraction()->"
1205 "(no full data dimensions) start=[%d,%d,%d] ldims=[%d,%d,%d]",
1206 (
int)start_dims[0],(
int)start_dims[1],(
int)start_dims[2],
1207 (
int)ldims[0], (
int)ldims[1] , (
int)ldims[2]
1215#ifdef DO_DATASPACE_CONSISTENCY_CHECK
1220 F5printf(-1,
"F5FSwrite_fraction(%s): cannot create, inconsistent dataspace!", fieldname);
1227 if (F5B_identical_dims(rank, full_dims, end_dims) )
1228 F5printf(80,
"F5FSwrite_fraction(%s) dimensions cover full dataset", fieldname);
1230 F5printf(80,
"F5FSwrite_fraction(%s) dimensions do not cover full dataset", fieldname);
1233 F5printf(80,
"F5FSwrite_fraction(%s) fragment starts at zero", fieldname);
1235 F5printf(80,
"F5FSwrite_fraction(%s) fragment starts at some offset", fieldname);
1238 if (AllowFullCoverage && F5B_identical_dims(rank, full_dims, ldims) &&
F5B_iszero_dims(rank, start_dims) )
1240 F5printf(8,
"F5FSwrite_fraction(%s) writing full dataset", fieldname);
1252 F5printf(9,
"~F5FSwrite_fraction(%s) writing full dataset\n", fieldname);
1256 F5printf(8,
"F5FSwrite_fraction(%s) writing dataset fragment\n", fieldname);
1260 datastart?start_dims:NULL,
1261 start_border?sborder:NULL, end_border?eborder:NULL,
1278 F5printf(9,
"F5FSwrite_fraction(%s) writing dataset fragment\n", fieldname);
1282static double poly_eval(
const double coefficients[],
int order,
int x)
1284double f = coefficients[0];
1286 f += x*coefficients[1];
1293void F5FevalX(
double*result,
int Mrank,
const int index[],
1294 int components,
const double*
const polynomials[],
const int polynom_order[],
1295 const int component_map[])
1298 for(i=0; i<Mrank; i++)
1300 int c = component_map[ i ];
1301 result[ c ] = poly_eval( polynomials[c], polynom_order[c], index[ i ] );
1313 int rank,
const hsize_t dims[],
1314 hid_t fieldtype, hid_t memtype,
1315 const void *
const dataPtr[],
const int polynom_order[],
1316 const int component_map[],
1327 F5printf(-1,
"F5FSwriteX(%s): cannot create, inconsistent dataspace!", fieldname);
1334 dataPtr, polynom_order,
1341 F5printf(-1,
"F5FSwriteX(%s): cannot create direct product field!",
1363 F5printf(9,
"F5FSwriteX(%s) writing direct product\n", fieldname);
1368static const char*F5Fblockname(
int dimensions,
const hsize_t*start)
1370 puts(
"Default blockname is unimplemented!");
1374static int is_all_zero(
int rank,
const hsize_t*data)
1377 for(i=0; i<rank; i++)
1378 if (data[i])
return 0;
1385 const hsize_t*start_border,
1386 const hsize_t*end_border,
1387 const char*fraction_name)
1389 if (!myPath )
return 0;
1391 if (!fraction_name)
return 0;
1393hid_t B_id = H5Gopen2( myPath->
Field_hid, fraction_name, H5P_DEFAULT);
1397 if (!is_all_zero(rank, start_border))
1406 if (!is_all_zero(rank, end_border))
1417 int rank,
const hsize_t*full_dims,
1418 const hsize_t*local_dims,
1419 hid_t fieldtype,
const void*base,
const void*delta,
1420 const hsize_t*datastart,
1421 const char*fraction_name)
1428const char*fragment_name = fraction_name?fraction_name:F5Fblockname(rank, datastart);
1431 F5printf(8,
"F5Fwrite_linear_fraction(%s)\n", fieldname);
1458 F5printf(9,
"~F5Fwrite_linear_fraction(%s)\n", fieldname);
1465 int rank, hsize_t*dims,
1466 hid_t fieldtype,
const void * base,
const void*delta)
1471 F5printf(40,
"F5Fwrite_linear(%s): rank=%d, dims=%dx%dx%dx%d)", fieldname, rank,
1472 rank>0?(
int)dims[0]:1, rank>1?(
int)dims[1]:1, rank>2?(
int)dims[2]:1, rank>3?(
int)dims[3]:1 );
1480 F5printf(41,
"F5Fwrite_linear(%s): permuted dims: rank=%d, dims=%dx%dx%dx%d)", fieldname, rank,
1481 rank>0?(
int)save_dims[0]:1, rank>1?(
int)save_dims[1]:1, rank>2?(
int)save_dims[2]:1, rank>3?(
int)save_dims[3]:1 );
1485 F5printf(-1,
"F5Fwrite_linear(%s): cannot create, inconsistent dataspace!", fieldname);
1494 if (field_id<0)
return 0;
1497 int rank = H5Tget_nmembers( fieldtype );
1508 F5printf(40,
"~F5Fwrite_linear()");
1519 hid_t fieldtype,
void * base,
void*delta)
1540 rank = H5Tget_nmembers( fieldtype );
1553 hid_t fieldtype,
void * base,
void*delta)
1574 rank = H5Tget_nmembers( fieldtype );
1594 void*data, hsize_t N, hid_t mem_type_id,
1595 const char*fragment_name)
1598hid_t attr_id, type_id;
1601 F5printf(5,
"Open attribute %s without path object cannot succeed!", attribute_name);
1613 F5printf(5,
"F5Fget_attribute_byname(%s,%s). No such fragment.", attribute_name, fragment_name);
1627 F5printf(5,
"Open attribute %s in fragment %s not found.", attribute_name, fragment_name);
1632 hid_t space_id = H5Aget_space(attr_id);
1633 hsize_t NumberofExistingAttributeElements = H5Sget_simple_extent_npoints(space_id);
1635 if (NumberofExistingAttributeElements != N)
1637 F5printf(1,
"F5Fget_attribute_byname() MISMATCH - trying to read %d elements for attribute %s which has %d elements in file.",
1638 (
int)N, attribute_name, (
int)NumberofExistingAttributeElements);
1644 type_id = mem_type_id;
1646 type_id = H5Aget_type(attr_id);
1650 err =
F_H5Aread(attr_id, type_id, data, attribute_name);
1672 if( H5Iis_valid( type_id ) )
1673 if( H5Iget_type( type_id ) >= 0 )
1681 const void*data, hsize_t N,
1683 const char*fragment_name)
1685hid_t attr_id, space_id;
1688 F5printf(5,
"F5Fset_attribute() got NULL F5Path, cannot set attribute %s .",attribute_name);
1693 F5printf(5,
"F5Fset_attribute() F5Path has no field ID, cannot set attribute %s .",attribute_name);
1697 space_id = H5Screate_simple(1, &N, &N );
1703 frag_id = H5Gopen2(f->
Field_hid, fragment_name, H5P_DEFAULT);
1712 attr_id =
F5Acreate( frag_id, attribute_name, mem_type_id, space_id, H5P_DEFAULT);
1720 attr_id =
F5Acreate( f->
Field_hid, attribute_name, mem_type_id, space_id, H5P_DEFAULT);
1723 H5Sclose( space_id );
1727 F5printf(5,
"F5Fset_attribute() Could neither open or create attribute %s .",attribute_name);
1731 H5Awrite(attr_id, mem_type_id, data );
1746 type_id, fragment_name);
long F5Aget_ints(hid_t loc_id, const char *name, int *data, hsize_t n)
hid_t F5Atry_to_open(hid_t location, const char *name)
int F5Asave_string(hid_t loc_id, const char *name, const char *buf)
int F5Asave(hid_t loc_id, const char *name, hid_t file_type_id, hid_t mem_type_id, const void *data, hsize_t n)
int F5Asave_strings(hid_t loc_id, const char *name, const char *buf, int HowMany)
int F5Bget_chart_dims(const ChartDomain_IDs *IDs)
hsize_t * F5B_permute_dimensions(hsize_t *target_dims, int rank, const hsize_t *source_dims, int perm_vector[FIBER_MAX_RANK], int perm_vector_size)
hid_t F5file_type(F5Path *fpath, hid_t fieldtype)
int F5Tget_extent(F5Path *f, hsize_t *dims, int maxDims)
int F5Fexpand_dataspace(F5Path *fpath, int rank, hsize_t *Dims)
int F5Fis_group(const F5Path *fpath)
int F5Fget_range(F5Path *f, const char *fragment_name, void *minmax)
int F5Fread_linear_fragment(F5Path *fpath, hid_t fragment_hid, hsize_t *dims, hid_t fieldtype, void *base, void *delta)
int F5Fset_attribute_byname(F5Path *f, const char *attribute_name, const void *data, hsize_t N, hid_t mem_type_id, const char *fragment_name)
F5ErrorCode F5Fwrite_fraction_external(F5Path *fpath, const char *fieldname, const char *target_file_name, const char *target_obj_name, const char *prefix, int rank, const hsize_t *Dims, const hsize_t *fraction_dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, const hsize_t *datastart, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name, hid_t property_id)
void F5FevalX(double *result, int Mrank, const int index[], int components, const double *const polynomials[], const int polynom_order[], const int component_map[])
F5_API int F5Fset_range(F5Path *f, const char *fragment_name, const void *minmax)
F5_API F5ErrorCode F5Fwrite_1D(F5Path *fpath, const char *fieldname, hsize_t nElements, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t property_id)
hid_t F5Fget_type(F5Path *f)
int F5B_iszero_dims(int rank, hsize_t *dims)
int F5Fget_attribute_byname(F5Path *f, const char *attribute_name, void *data, hsize_t N, hid_t mem_type_id, const char *fragment_name)
int F5Tget_index_depth(F5Path *f, int *result)
int F5Fwrite_linear_fraction_overlap(F5Path *myPath, int rank, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name)
F5_API hsize_t * F5Tpermute_dimensions(F5Path *fpath, int rank, hsize_t *target_dims, const hsize_t *source_dims)
F5_API int F5Fwrites(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void **dataPtr, hid_t property_id)
int F5Fis_separatedcompound(F5Path *fpath, const char *fieldname)
int F5Ffragment_is_group(const F5Path *fpath, const char *fragment_name)
int F5Fis_fragmented(F5Path *fpath, const char *fieldname)
F5ErrorCode F5Fwrite_flexible(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t property_id, int do_check)
ArrayType F5Fget_field_enum(const F5Path *fpath, const char *fieldname, int *major_version, int *minor_version, int *release_version)
enum F5ErrorCode_type F5ErrorCode
F5_API int F5LTset_dataspace(F5Path *f, int rank, hsize_t *dims)
F5_API int F5LTexpand_dataspace(F5Path *f, int rank, hsize_t *dims)
@ F5ERROR_COMPONENTMAP_INVALID
@ F5ERROR_INVALID_FRAGMENT_START
@ F5ERROR_INVALID_FRAGMENT_END
@ F5ERROR_INCONSISTENT_DATASPACE
@ F5ERROR_INVALID_FIELDNAME
@ F5ERROR_INVALID_PARAMETERS
@ F5ERROR_COMPOUND_EXPECTED
@ F5ERROR_COMPONENTMAP_EXPECTED
hid_t F5LTmake_enum_type(F5Path *fpath)
hid_t F5Lwrite_fractionS(hid_t R_id, const char *fieldname, int rank, const hsize_t *full_dims, const hsize_t *datasize, hid_t fieldtype, hid_t memtype, const void *dataPtr, const hsize_t *datastart, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name, hid_t enum_type, hid_t property_id)
hid_t F5Lwrite_fraction_external(hid_t R_id, const char *fieldname, const char *target_file_name, const char *target_obj_name, const char *prefix, int rank, const hsize_t *full_dims, const hsize_t *datasize, hid_t fieldtype, hid_t memtype, const void *dataPtr, const hsize_t *datastart, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name, hid_t enum_type, hid_t property_id)
int F5Dset_type_attribute(hid_t F_id, hid_t fieldtype)
hid_t F5LwriteX(hid_t R_id, const char *fieldname, int rank, const hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *const *dataPtr, const int *polynom_order, const int component_map[], hid_t property_id, hid_t ProcIDLocation)
int F5Lis_linear(hid_t Rep_id, const char *fieldname)
#define FIBER_HDF5_INDEXDEPTH_ATTRIB
#define FIBER_FIELD_COMPONENT_RANGE
#define FIBER_RELEASE_VERSION
#define FIBER_UNIFORMARRAY_ELEMENTS_ATTRIBUTE
@ FragmentedUniformSampling
@ FragmentedSeparatedCompound
#define FIBER_FRAGMENT_NOOVERLAP_START_ATTRIBUTE
#define FIBER_FRAGMENT_NOOVERLAP_END_ATTRIBUTE
#define FIBER_MAJOR_VERSION
#define FIBER_FIELD_DATASPACE_DIMENSIONS_ATTRIBUTE
#define FIBER_MINOR_VERSION
#define FIBER_FRAGMENT_OFFSET_ATTRIBUTE
void F5I_add_field(F5Path *fpath, const char *fieldname)
herr_t F_H5Aread(hid_t attr_id, hid_t mem_type_id, void *buf, const char *name)
void F5print_dimensions(int verbosity, const char *prefix, int rank, const hsize_t dims[])
hid_t F5Acreate(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id, hid_t create_plist)
#define F5printf(verbosity,...)
hid_t F5Ttransient_F5field_Array_enum()
herr_t F5Tset_field_enum(hid_t loc_id, hid_t enum_type_id, ArrayType what)
ArrayType F5Tget_field_Array_enum(hid_t loc_id, int *major_version, int *minor_version, int *release_version)
hid_t F5Tget_space(F5Path *f)
int F5Fis_linear(F5Path *fpath, const char *fieldname)
F5_API int F5Fwrite_linear(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, const void *base, const void *delta)
int F5Fopen(F5Path *f, const char *fieldname)
F5_API F5ErrorCode F5FwriteIMAGE(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t dcpl_id)
int F5Fwrite_linear_fraction(F5Path *fpath, const char *fieldname, int rank, const hsize_t *full_dims, const hsize_t *local_dims, hid_t fieldtype, const void *base, const void *delta, const hsize_t *datastart, const char *fraction_name)
const char * F5Fwhatsup(F5ErrorCode EC)
F5ErrorCode F5FwriteX(F5Path *fpath, const char *fieldname, int rank, const hsize_t dims[], hid_t fieldtype, hid_t memtype, const void *const dataPtr[], const int polynom_order[], const int component_map[], hid_t property_id)
F5ErrorCode F5Fwrite_fractionS(F5Path *fpath, const char *fieldname, int rank, const hsize_t *Dims, const hsize_t *fraction_dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, const hsize_t *datastart, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name, hid_t property_id)
F5ErrorCode F5Fwrite(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t property_id)
F5ErrorCode F5FwriteHyperDimensional(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t property_id)
hid_t F5Fget_type2(F5Path *f, hid_t elink_fapl_id)
int F5Fcreate(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, hid_t property_id)
F5ErrorCode F5Fwrite_fraction(F5Path *fpath, const char *fieldname, int rank, const hsize_t *Dims, const hsize_t *fraction_dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, const hsize_t *datastart, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name, hid_t property_id)
int F5FSwrite_fraction(F5Path *fpath, const char *fieldname, int rank, const hsize_t *dims, const hsize_t *frag_dims, hid_t fieldtype, hid_t memtype, const void *const *dataPtr, const hsize_t *datastart, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name, hid_t property_id, int AllowFullCoverage)
hid_t F5Lread_linear(hid_t F_id, hsize_t *dims, hid_t fieldtype, void *base, void *delta)
int F5LAsave_dimensions(hid_t Field_id, const char *aname, int rank, const hsize_t *dims)
hid_t F5Lcreate(hid_t R_id, const char *fieldname, int dimension, const hsize_t *dims, hid_t fieldtype, hid_t dataset_creation_property_id)
hid_t F5Lwrite(hid_t R_id, const char *fieldname, int dimension, const hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t enum_type, hid_t dcpl_id)
int F5Lset_space(hid_t Field_id, int rank, const hsize_t *dims)
int F5LAget_dimensions(hid_t Field_id, const char *aname, hsize_t dims[FIBER_MAX_RANK])
hid_t F5Lwrite_fraction(hid_t R_id, const char *fieldname, int rank, const hsize_t *full_dims, const hsize_t *datasize, hid_t fieldtype, hid_t memtype, const void *dataPtr, const hsize_t *datastart, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name, hid_t enum_type, hid_t property_id)
hid_t F5Lwrites(hid_t R_id, const char *fieldname, int dimension, const hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *const *dataPtr, hid_t enum_type, hid_t property_id)
int F5Fread_linear(F5Path *fpath, hsize_t *dims, hid_t fieldtype, void *base, void *delta)
hid_t F5Lwrite_linear(hid_t R_id, const char *fieldname, int dimension, const hsize_t *dims, hid_t fieldtype, const void *base, const void *delta)
hid_t F5LSwrite_fraction(hid_t R_id, const char *fieldname, int rank, const hsize_t *full_dims, const hsize_t *datasize, hid_t fieldtype, hid_t memtype, const void *const *dataPtr, const hsize_t *datastart, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name, hid_t enum_type, hid_t property_id)
hid_t F5Lget_type(hid_t Field_hid, int FieldIDisGroup, hid_t fapl_id)
hid_t F5Lwrite1D(hid_t R_id, const char *fieldname, hsize_t nElements, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t enum_type, hid_t property_id)
hid_t F5Dtry_to_open(hid_t location, const char *name)
hid_t F5Gtry_to_open(hid_t location, const char *name)
herr_t F5Xclose(hid_t obj_id)
hid_t F5Gappend(hid_t loc_id, const char *name)
int perm_vector[FIBER_MAX_RANK]
ChartDomain_IDs * myChart