9 int main(
int argc,
char* argv[] )
19 fprintf( stderr,
"Usage: %s <filename>\n", argv[0] );
26 fprintf( stderr,
"%s: %s\n", argv[1],
mhdf_message( &status ) );
33 fprintf( stderr,
"%s: %s\n", argv[1],
mhdf_message( &status ) );
39 printf(
"%s:\n", argv[1] );
48 const char* vals_label,
49 const char* extra_label,
54 if( vals_label && (
int)strlen( vals_label ) > len ) len = strlen( vals_label );
55 if( extra_label && (
int)strlen( extra_label ) > len ) len = strlen( extra_label );
58 printf(
" %s (%s):\n", name, subname );
60 printf(
" %s:\n", name );
62 if( vals_label ) printf(
" %-*s: %d\n", len, vals_label, data->
vals_per_ent );
64 printf(
" %-*s: %ld [%ld - %ld]\n", len,
"entities", data->
count, data->
start_id,
67 if( extra_label ) printf(
" %-*s\n", len, extra_label );
79 const char* adj = data->
have_adj ?
"adjacencies" :
"no adjencies";
85 static const char opaque[] =
"opaque";
86 static const char integer[] =
"integer";
87 static const char real[] =
"real";
88 static const char bits[] =
"bit field";
89 static const char boolean[] =
"boolean";
90 static const char id[] =
"entity id";
91 static const char unknown[] =
"(UNKNOWN TYPE ID)";
113 const char* data = (
const char*)value;
116 const int* intptr = (
const int*)value;
117 const double* dblptr = (
const double*)value;
118 const unsigned long* idptr = (
const unsigned long*)value;
130 for( i = 0; i <
size; ++i )
131 if( !isprint( data[i] ) ) print = 0;
135 memcpy( offset + 1, data,
size );
136 offset[
size + 1] =
'"';
137 offset[
size + 2] =
'\0';
142 strcpy( offset,
"0x" );
144 for( i = 0; i <
size; ++i )
145 offset += sprintf( offset,
"%02x", (
unsigned int)data[i] );
151 offset += sprintf( offset,
"%d", intptr[0] );
155 offset += sprintf( offset,
"{%d", intptr[0] );
156 for( i = 1; i <
size; ++i )
157 offset += sprintf( offset,
",%d", intptr[i] );
158 offset += sprintf( offset,
"}" );
164 offset += sprintf( offset,
"%g", dblptr[0] );
168 offset += sprintf( offset,
"{%g", dblptr[0] );
169 for( i = 1; i <
size; ++i )
170 offset += sprintf( offset,
",%g", dblptr[i] );
171 offset += sprintf( offset,
"}" );
176 offset += sprintf( offset,
"(more than 8 bits)" );
179 for( i =
size - 1; i >= 0; --i )
180 *( offset++ ) = (char)( *data & ( 1 << i ) ?
'1' :
'0' );
187 offset += sprintf( offset,
"%s", data[0] ?
"true" :
"false" );
191 offset += sprintf( offset,
"{%s", data[0] ?
"true" :
"false" );
192 for( i = 1; i <
size; ++i )
193 offset += sprintf( offset,
",%s", data[i] ?
"true" :
"false" );
194 offset += sprintf( offset,
"}" );
200 offset += sprintf( offset,
"%lu", idptr[0] );
204 offset += sprintf( offset,
"{%lu", idptr[0] );
205 for( i = 1; i <
size; ++i )
206 offset += sprintf( offset,
",%lu", idptr[i] );
207 offset += sprintf( offset,
"}" );
211 strcpy(
buffer,
"(unknown data type)" );
220 static const char nodes[] =
"Nodes";
221 static const char sets[] =
"Sets";
222 static const char invalid[] =
"<INVALID INDEX!>";
223 if( idx == -2 )
return sets;
224 if( idx == -1 )
return nodes;
233 printf(
" \"%s\":\n", data->
name );
236 printf(
" %-*s: (variable)\n", width,
"size" );
238 printf(
" %-*s: %d (%d bytes)\n", width,
"size", data->
size, data->
bytes );
239 printf(
" %-*s: %x\n", width,
"flags", data->
storage );
241 printf(
" %-*s: %s\n", width,
"default",
244 printf(
" %-*s: %s\n", width,
"mesh val",
248 printf(
" %-*s: (sparse)", width,
"tables" );
260 printf(
" %-*s: (none)", width,
"tables" );
269 printf(
" Entities:\n" );
275 printf(
" Tags:\n" );
279 printf(
" Number partitions: %d\n", data->
numEntSets[0] );
282 printf(
"\n Number material sets: %d\n", data->
numEntSets[1] );
285 printf(
"\n Number neumann sets: %d\n", data->
numEntSets[2] );
288 printf(
"\n Number dirichlet sets: %d\n", data->
numEntSets[3] );
291 printf(
"\n Number geometry sets: %d\n", data->
numEntSets[4] );