11hid_t
F5Acreate(hid_t loc_id,
const char *
name, hid_t type_id, hid_t space_id, hid_t create_plist )
13 return H5Acreate2( loc_id,
name, type_id, space_id, create_plist, H5P_DEFAULT );
19hid_t F5AScreate(hid_t location,
const char*
name, hid_t type, hid_t space, hid_t property_id)
21 return H5Acreate(location,
name, type, space, property_id);
24herr_t F5ASwrite(hid_t attr_hid, hid_t type,
const void*data)
26 return H5Awrite(attr_hid, type, data);
29herr_t F5ASclose(hid_t attr_hid)
31 return H5Aclose(attr_hid);
34hid_t F5ASopen(hid_t location,
const char*
name)
39hid_t F5ASget_space(hid_t attr_hid)
41 return H5Aget_space(attr_hid);
44herr_t F5ASread(hid_t attr_id, hid_t type,
void*data)
46 return H5Aread(attr_id, type, data );
63hid_t F5AScreate(hid_t location,
const char*
name, hid_t type, hid_t space, hid_t property_id)
65 return H5Dcreate(location,
name, type, space, property_id);
68herr_t F5ASwrite(hid_t attr_hid, hid_t type,
const void*data)
70 return H5Dwrite(attr_hid, type, H5S_ALL , H5S_ALL, H5P_DEFAULT, data);
73herr_t F5ASclose(hid_t attr_hid)
75 return H5Dclose( attr_hid);
78hid_t F5ASopen(hid_t location,
const char*
name)
80 return H5Dopen(location,
name);
83hid_t F5ASget_space(hid_t attr_hid)
85 return H5Dget_space(attr_hid);
88hid_t F5ASget_type(hid_t attr_hid)
90 return H5Dget_type(attr_hid);
93herr_t F5ASread(hid_t attr_id, hid_t type,
void*data)
95 return H5Dread(attr_id, type, H5S_ALL, H5S_ALL, H5P_DEFAULT, data);
110 F5printf(0,
"F5I_create_contents(): Invalid File!\n");
133 "All file objects in reverse order for easier browsing. ");
136 "All grids and their sequences.");
144 F5printf(30,
"~F5I_create_contents()") ;
151herr_t retval = H5Iget_name(existing_id, objname,
sizeof(objname) );
156 F5printf(30,
"F5Glink(%s)", linkname);
157 retval = H5Glink(loc_id, H5G_LINK_SOFT, objname, linkname);
162herr_t
F5Glink(hid_t loc_id, H5G_link_t link_type,
const char *current_name,
const char *new_name )
166 retval = H5Glink(loc_id, link_type, current_name, new_name);
170 F5printf(30,
"F5Glink(,,%s -> %s) FAILED\n", current_name, new_name);
172 F5printf(30,
"F5Glink(,,%s -> %s) DONE\n", current_name, new_name);
184 F5printf(3,
"F5I_add_field(%s): INVALID Field ID %ld",fieldname, (
long)fpath->
Field_hid);
188 F5printf(30,
"F5I_add_field(%s)",fieldname);
193hid_t FieldInfo =
F5Gappend(FieldTable, fieldname);
201 F5printf(-1,
"F5I_add_field(): FATAL INTERNAL ERROR: No Grid id!");
204 if (H5Iget_name(fpath->
Grid_hid, gridname,
sizeof(gridname) )<1)
206 F5printf(-1,
"F5I_add_field(): Could not get name for Grid id!");
211 g = strrchr(gridname,
'/');
212 if (!g) g = gridname;
else g++;
222 H5Glink(FieldInfo, H5G_LINK_SOFT, gridref , g);
243 F5printf(30,
"F5I_add_grid(%s,t=%g): grid table %d", gridname, *time, (
int)(GridsTable) );
245 GridInfo =
F5Gappend(GridsTable, gridname);
257 printf(
"F5I_add_grid(T=%g) TimeTableEntry={%g, %s})\n",
262 assert( GridTimeInfo.
TimeValue == *time);
265 printf(
"F5I_add_grid() TimeTableEntry={(undefined),%s})\n",
294 herr_t timetableError;
297 timetableError = H5Lcreate_hard( GridsTable, gridname,
299 H5P_DEFAULT, H5P_DEFAULT);
302 if (timetableError>=0)
312static int F5verbosity()
314static int verbosity = 0;
315static const char*F5_VERBOSITY = 0;
321 F5_VERBOSITY = getenv(
"F5_VERBOSITY");
327 verbosity = atoi(F5_VERBOSITY);
332herr_t
F_H5Aread(hid_t attr_id, hid_t mem_type_id,
void *buf,
const char*
name )
335 return H5Aread(attr_id, mem_type_id, buf);
342herr_t
_F5Gclose(hid_t
id,
const char*filename,
int lineno)
344 F5printf(110,
" H5Gclose(%lx): %s(%d)", (
long)
id, filename, lineno );
356 if (verbosity > F5verbosity() )
359 va_start(argptr, fmt);
362 vfprintf(stderr, fmt, argptr);
368void F5printx(
int verbosity,
const char*sourcefilename,
int lineNo,
const char*FunctionName,
373int EffectiveVerbosity = F5verbosity();
374 if (EffectiveVerbosity<0) EffectiveVerbosity = -EffectiveVerbosity;
375 if (verbosity > EffectiveVerbosity)
380 fprintf(stderr,
"%s:%d [%s]\t", sourcefilename, lineNo, FunctionName);
383 va_start(argptr, fmt);
386 vfprintf(stderr, fmt, argptr);
397 F5printf(verbosity,
"%s(%ux%ux%u)", prefix,
398 (
int)dims[0], (
int)dims[1], (
int)dims[2]);
400 F5printf(verbosity,
"%s(%ux%u)", prefix,
401 (
int)dims[0], (
int)dims[1]);
403 F5printf(verbosity,
"%s(%u)", prefix,
412 puts(
"F5print_OpenHandles"); fflush(stdout);
415 obj_nr = H5Fget_obj_count( file_id, H5F_OBJ_ALL );
418 puts(
"F5print_OpenHandles() Error retrieving number of open objects" );
420 printf(
"Open HDF5 object handles: %ld \n", obj_nr );
422hid_t* objs = (hid_t*)calloc( obj_nr,
sizeof( hid_t ) );
424ssize_t check = H5Fget_obj_ids( file_id, H5F_OBJ_ALL, -1, objs );
425 assert( check == obj_nr );
428 for( i = 0; i < obj_nr; ++i)
431 valid = H5Iis_valid( objs[i] ) ;
435 printf(
" [%ld] is invalid!\n");
440 printf(
" [%ld] Error on validness check!\n");
445 type = H5Iget_type( objs[i] );
447 puts(
"Error retrieving type of open object." );
451 refs = H5Iget_ref( objs[i] );
454 H5Iget_name( objs[i], name_buf, 512 );
459 CASEITEM( H5I_FILE, i, refs, name_buf )
460 CASEITEM( H5I_GROUP, i, refs , name_buf )
461 CASEITEM( H5I_DATATYPE, i, refs , name_buf )
462 CASEITEM( H5I_DATASPACE, i, refs , name_buf )
463 CASEITEM( H5I_DATASET, i, refs , name_buf )
464 CASEITEM( H5I_ATTR, i, refs , name_buf )
465 CASEITEM( H5I_BADID, i, refs , name_buf )
468 printf (
" [%ld]: unknown type\n", i);
herr_t F5Asave_version(hid_t loc_id, int major, int minor, int release)
#define F5_TIMESLICE_NAME_LENGTH
#define FIBER_VERSION_ATTRIBUTE_NAME
#define FIBER_RELEASE_VERSION
#define FIBER_CONTENT_FIELDS
#define F5_TIMETABLE_NAME
#define FIBER_MAJOR_VERSION
#define FIBER_MINOR_VERSION
#define FIBER_HDF5_TIME_ATTRIB
#define FIBER_CONTENT_GRIDS
#define FIBER_PARAMETER_SPACE
void F5I_add_field(F5Path *fpath, const char *fieldname)
void F5printx(int verbosity, const char *sourcefilename, int lineNo, const char *FunctionName, const char *fmt,...)
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[])
void F5print_OpenHandles(hid_t file_id)
herr_t F5Glink(hid_t loc_id, H5G_link_t link_type, const char *current_name, const char *new_name)
hid_t F5Acreate(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id, hid_t create_plist)
void F5I_add_grid(F5Path *fpath, const char *gridname, const double *time)
herr_t F5Glink_soft_to_id(hid_t loc_id, hid_t existing_id, const char *linkname)
hid_t F5I_create_contents(hid_t File_id)
#define CASEITEM(x, i, refs, name)
#define F5printf(verbosity,...)
hid_t F5Aopen_name(hid_t location, const char *name)
F5_API hsize_t F5Bappend_timetable(hid_t loc_id, hid_t timetable_type_location_id, const TimeTableEntry *TTE, hsize_t append_dims)
struct _TimeTableEntry TimeTableEntry
F5_API char * F5I_timegroup(const double *time, char *destbuf, size_t len)
herr_t _F5Gclose(hid_t id, const char *filename, int lineno)
hid_t F5Gappend(hid_t loc_id, const char *name)
char TimesliceName[F5_TIMESLICE_NAME_LENGTH]