1 
2 #include "H5Part.h"
3 #include "H5PartPrivate.h"
4 #include "H5Block.h"
5 #include "H5BlockReadWrite.h"
6 #include "Underscore.h"
7 
8 #if defined(F77_SINGLE_UNDERSCORE)
9 #define F77NAME(a,b) a
10 #elif defined(F77_CRAY_UNDERSCORE)
11 #define F77NAME(a,b) b
12 #elif defined(F77_NO_UNDERSCORE)
13 #else
14 #error Error, no way to determine how to construct fortran bindings
15 #endif
16 
17 #if ! defined(F77_NO_UNDERSCORE)
18 #define h5bl_3d_write_scalar_field_r8 F77NAME ( \
19 	h5bl_3d_write_scalar_field_r8_, \
20 	H5BL_3D_WRITE_SCALAR_FIELD_R8 )
21 #endif
22 
23 h5part_int64_t
h5bl_3d_write_scalar_field_r8(h5part_int64_t * f,const char * field_name,const h5part_float64_t * data,const int l_field_name)24 h5bl_3d_write_scalar_field_r8 (
25 	h5part_int64_t *f,
26 	const char *field_name,
27 	const h5part_float64_t *data,
28 	const int l_field_name
29 	) {
30 
31 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
32 
33 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
34 
35 	h5part_int64_t herr = H5Block3dWriteScalarFieldFloat64 (
36 		filehandle, field_name2, data );
37 
38 	free ( field_name2 );
39 	return herr;
40 }
41 
42 #if ! defined(F77_NO_UNDERSCORE)
43 #define h5bl_3d_read_scalar_field_r8 F77NAME ( \
44 	h5bl_3d_read_scalar_field_r8_, \
45 	H5BL_3D_READ_SCALAR_FIELD_R8 )
46 #endif
47 
48 h5part_int64_t
h5bl_3d_read_scalar_field_r8(h5part_int64_t * f,const char * field_name,h5part_float64_t * data,const int l_field_name)49 h5bl_3d_read_scalar_field_r8 (
50 	h5part_int64_t *f,
51 	const char *field_name,
52 	h5part_float64_t *data,
53 	const int l_field_name
54 	) {
55 
56 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
57 
58 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
59 
60 	h5part_int64_t herr = H5Block3dReadScalarFieldFloat64 (
61 		filehandle, field_name2, data );
62 
63 	free ( field_name2 );
64 	return herr;
65 }
66 
67 #if ! defined(F77_NO_UNDERSCORE)
68 #define h5bl_3d_write_3dvector_field_r8 F77NAME ( \
69 	h5bl_3d_write_3dvector_field_r8_, \
70 	H5BL_3D_WRITE_3DVECTOR_FIELD_R8 )
71 #endif
72 
73 h5part_int64_t
h5bl_3d_write_3dvector_field_r8(h5part_int64_t * f,const char * field_name,const h5part_float64_t * xval,const h5part_float64_t * yval,const h5part_float64_t * zval,const int l_field_name)74 h5bl_3d_write_3dvector_field_r8 (
75 	h5part_int64_t *f,	      /*!< file handle */
76 	const char *field_name,	 /*!< name of the data set */
77 	const h5part_float64_t *xval,   /*!< array of x component data */
78 	const h5part_float64_t *yval,   /*!< array of y component data */
79 	const h5part_float64_t *zval,   /*!< array of z component data */
80 	const int l_field_name
81 	) {
82 
83 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
84 
85 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
86 
87 	h5part_int64_t herr = H5Block3dWrite3dVectorFieldFloat64 (
88 		filehandle, field_name2, xval, yval, zval );
89 
90 	free ( field_name2 );
91 	return herr;
92 }
93 
94 #if ! defined(F77_NO_UNDERSCORE)
95 #define h5bl_3d_read_3dvector_field_r8 F77NAME ( \
96 	h5bl_3d_read_3dvector_field_r8_, \
97 	H5BL_3D_READ_3DVECTOR_FIELD_R8 )
98 #endif
99 
100 h5part_int64_t
h5bl_3d_read_3dvector_field_r8(h5part_int64_t * f,const char * field_name,h5part_float64_t * xval,h5part_float64_t * yval,h5part_float64_t * zval,const int l_field_name)101 h5bl_3d_read_3dvector_field_r8 (
102 	h5part_int64_t *f,	      /*!< file handle */
103 	const char *field_name,	 /*!< name of the data set */
104 	h5part_float64_t *xval,	 /*!< array of x component data */
105 	h5part_float64_t *yval,	 /*!< array of y component data */
106 	h5part_float64_t *zval,	 /*!< array of z component data */
107 	const int l_field_name
108 	) {
109 
110 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
111 
112 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
113 
114 	h5part_int64_t herr = H5Block3dRead3dVectorFieldFloat64 (
115 		filehandle, field_name2, xval, yval, zval );
116 
117 	free ( field_name2 );
118 	return herr;
119 }
120 
121 #if ! defined(F77_NO_UNDERSCORE)
122 #define h5bl_3d_write_scalar_field_r4 F77NAME ( \
123 	h5bl_3d_write_scalar_field_r4_, \
124 	H5BL_3D_WRITE_SCALAR_FIELD_R4 )
125 #endif
126 
127 h5part_int64_t
h5bl_3d_write_scalar_field_r4(h5part_int64_t * f,const char * field_name,const h5part_float32_t * data,const int l_field_name)128 h5bl_3d_write_scalar_field_r4 (
129 	h5part_int64_t *f,
130 	const char *field_name,
131 	const h5part_float32_t *data,
132 	const int l_field_name
133 	) {
134 
135 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
136 
137 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
138 
139 	h5part_int64_t herr = H5Block3dWriteScalarFieldFloat32 (
140 		filehandle, field_name2, data );
141 
142 	free ( field_name2 );
143 	return herr;
144 }
145 
146 #if ! defined(F77_NO_UNDERSCORE)
147 #define h5bl_3d_read_scalar_field_r4 F77NAME ( \
148 	h5bl_3d_read_scalar_field_r4_, \
149 	H5BL_3D_READ_SCALAR_FIELD_R4 )
150 #endif
151 
152 h5part_int64_t
h5bl_3d_read_scalar_field_r4(h5part_int64_t * f,const char * field_name,h5part_float32_t * data,const int l_field_name)153 h5bl_3d_read_scalar_field_r4 (
154 	h5part_int64_t *f,
155 	const char *field_name,
156 	h5part_float32_t *data,
157 	const int l_field_name
158 	) {
159 
160 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
161 
162 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
163 
164 	h5part_int64_t herr = H5Block3dReadScalarFieldFloat32 (
165 		filehandle, field_name2, data );
166 
167 	free ( field_name2 );
168 	return herr;
169 }
170 
171 #if ! defined(F77_NO_UNDERSCORE)
172 #define h5bl_3d_write_3dvector_field_r4 F77NAME ( \
173 	h5bl_3d_write_3dvector_field_r4_, \
174 	H5BL_3D_WRITE_3DVECTOR_FIELD_R4 )
175 #endif
176 
177 h5part_int64_t
h5bl_3d_write_3dvector_field_r4(h5part_int64_t * f,const char * field_name,const h5part_float32_t * xval,const h5part_float32_t * yval,const h5part_float32_t * zval,const int l_field_name)178 h5bl_3d_write_3dvector_field_r4 (
179 	h5part_int64_t *f,	      /*!< file handle */
180 	const char *field_name,	 /*!< name of the data set */
181 	const h5part_float32_t *xval,   /*!< array of x component data */
182 	const h5part_float32_t *yval,   /*!< array of y component data */
183 	const h5part_float32_t *zval,   /*!< array of z component data */
184 	const int l_field_name
185 	) {
186 
187 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
188 
189 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
190 
191 	h5part_int64_t herr = H5Block3dWrite3dVectorFieldFloat32 (
192 		filehandle, field_name2, xval, yval, zval );
193 
194 	free ( field_name2 );
195 	return herr;
196 }
197 
198 #if ! defined(F77_NO_UNDERSCORE)
199 #define h5bl_3d_read_3dvector_field_r4 F77NAME ( \
200 	h5bl_3d_read_3dvector_field_r4_, \
201 	H5BL_3D_READ_3DVECTOR_FIELD_R4 )
202 #endif
203 
204 h5part_int64_t
h5bl_3d_read_3dvector_field_r4(h5part_int64_t * f,const char * field_name,h5part_float32_t * xval,h5part_float32_t * yval,h5part_float32_t * zval,const int l_field_name)205 h5bl_3d_read_3dvector_field_r4 (
206 	h5part_int64_t *f,	      /*!< file handle */
207 	const char *field_name,	 /*!< name of the data set */
208 	h5part_float32_t *xval,	 /*!< array of x component data */
209 	h5part_float32_t *yval,	 /*!< array of y component data */
210 	h5part_float32_t *zval,	 /*!< array of z component data */
211 	const int l_field_name
212 	) {
213 
214 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
215 
216 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
217 
218 	h5part_int64_t herr = H5Block3dRead3dVectorFieldFloat32 (
219 		filehandle, field_name2, xval, yval, zval );
220 
221 	free ( field_name2 );
222 	return herr;
223 }
224 
225 #if ! defined(F77_NO_UNDERSCORE)
226 #define h5bl_3d_write_scalar_field_i8 F77NAME ( \
227 	h5bl_3d_write_scalar_field_i8_, \
228 	H5BL_3D_WRITE_SCALAR_FIELD_I8 )
229 #endif
230 
231 h5part_int64_t
h5bl_3d_write_scalar_field_i8(h5part_int64_t * f,const char * field_name,const h5part_int64_t * data,const int l_field_name)232 h5bl_3d_write_scalar_field_i8 (
233 	h5part_int64_t *f,
234 	const char *field_name,
235 	const h5part_int64_t *data,
236 	const int l_field_name
237 	) {
238 
239 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
240 
241 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
242 
243 	h5part_int64_t herr = H5Block3dWriteScalarFieldInt64 (
244 		filehandle, field_name2, data );
245 
246 	free ( field_name2 );
247 	return herr;
248 }
249 
250 #if ! defined(F77_NO_UNDERSCORE)
251 #define h5bl_3d_read_scalar_field_i8 F77NAME ( \
252 	h5bl_3d_read_scalar_field_i8_, \
253 	H5BL_3D_READ_SCALAR_FIELD_I8 )
254 #endif
255 
256 h5part_int64_t
h5bl_3d_read_scalar_field_i8(h5part_int64_t * f,const char * field_name,h5part_int64_t * data,const int l_field_name)257 h5bl_3d_read_scalar_field_i8 (
258 	h5part_int64_t *f,
259 	const char *field_name,
260 	h5part_int64_t *data,
261 	const int l_field_name
262 	) {
263 
264 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
265 
266 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
267 
268 	h5part_int64_t herr = H5Block3dReadScalarFieldInt64 (
269 		filehandle, field_name2, data );
270 
271 	free ( field_name2 );
272 	return herr;
273 }
274 
275 #if ! defined(F77_NO_UNDERSCORE)
276 #define h5bl_3d_write_3dvector_field_i8 F77NAME ( \
277 	h5bl_3d_write_3dvector_field_i8_, \
278 	H5BL_3D_WRITE_3DVECTOR_FIELD_I8 )
279 #endif
280 
281 h5part_int64_t
h5bl_3d_write_3dvector_field_i8(h5part_int64_t * f,const char * field_name,const h5part_int64_t * xval,const h5part_int64_t * yval,const h5part_int64_t * zval,const int l_field_name)282 h5bl_3d_write_3dvector_field_i8 (
283 	h5part_int64_t *f,	      /*!< file handle */
284 	const char *field_name,	 /*!< name of the data set */
285 	const h5part_int64_t *xval,   /*!< array of x component data */
286 	const h5part_int64_t *yval,   /*!< array of y component data */
287 	const h5part_int64_t *zval,   /*!< array of z component data */
288 	const int l_field_name
289 	) {
290 
291 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
292 
293 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
294 
295 	h5part_int64_t herr = H5Block3dWrite3dVectorFieldInt64 (
296 		filehandle, field_name2, xval, yval, zval );
297 
298 	free ( field_name2 );
299 	return herr;
300 }
301 
302 #if ! defined(F77_NO_UNDERSCORE)
303 #define h5bl_3d_read_3dvector_field_i8 F77NAME ( \
304 	h5bl_3d_read_3dvector_field_i8_, \
305 	H5BL_3D_READ_3DVECTOR_FIELD_I8 )
306 #endif
307 
308 h5part_int64_t
h5bl_3d_read_3dvector_field_i8(h5part_int64_t * f,const char * field_name,h5part_int64_t * xval,h5part_int64_t * yval,h5part_int64_t * zval,const int l_field_name)309 h5bl_3d_read_3dvector_field_i8 (
310 	h5part_int64_t *f,	      /*!< file handle */
311 	const char *field_name,	 /*!< name of the data set */
312 	h5part_int64_t *xval,	 /*!< array of x component data */
313 	h5part_int64_t *yval,	 /*!< array of y component data */
314 	h5part_int64_t *zval,	 /*!< array of z component data */
315 	const int l_field_name
316 	) {
317 
318 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
319 
320 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
321 
322 	h5part_int64_t herr = H5Block3dRead3dVectorFieldInt64 (
323 		filehandle, field_name2, xval, yval, zval );
324 
325 	free ( field_name2 );
326 	return herr;
327 }
328 
329 #if ! defined(F77_NO_UNDERSCORE)
330 #define h5bl_3d_write_scalar_field_i4 F77NAME ( \
331 	h5bl_3d_write_scalar_field_i4_, \
332 	H5BL_3D_WRITE_SCALAR_FIELD_I4 )
333 #endif
334 
335 h5part_int64_t
h5bl_3d_write_scalar_field_i4(h5part_int64_t * f,const char * field_name,const h5part_int32_t * data,const int l_field_name)336 h5bl_3d_write_scalar_field_i4 (
337 	h5part_int64_t *f,
338 	const char *field_name,
339 	const h5part_int32_t *data,
340 	const int l_field_name
341 	) {
342 
343 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
344 
345 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
346 
347 	h5part_int64_t herr = H5Block3dWriteScalarFieldInt32 (
348 		filehandle, field_name2, data );
349 
350 	free ( field_name2 );
351 	return herr;
352 }
353 
354 #if ! defined(F77_NO_UNDERSCORE)
355 #define h5bl_3d_read_scalar_field_i4 F77NAME ( \
356 	h5bl_3d_read_scalar_field_i4_, \
357 	H5BL_3D_READ_SCALAR_FIELD_I4 )
358 #endif
359 
360 h5part_int64_t
h5bl_3d_read_scalar_field_i4(h5part_int64_t * f,const char * field_name,h5part_int32_t * data,const int l_field_name)361 h5bl_3d_read_scalar_field_i4 (
362 	h5part_int64_t *f,
363 	const char *field_name,
364 	h5part_int32_t *data,
365 	const int l_field_name
366 	) {
367 
368 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
369 
370 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
371 
372 	h5part_int64_t herr = H5Block3dReadScalarFieldInt32 (
373 		filehandle, field_name2, data );
374 
375 	free ( field_name2 );
376 	return herr;
377 }
378 
379 #if ! defined(F77_NO_UNDERSCORE)
380 #define h5bl_3d_write_3dvector_field_i4 F77NAME ( \
381 	h5bl_3d_write_3dvector_field_i4_, \
382 	H5BL_3D_WRITE_3DVECTOR_FIELD_I4 )
383 #endif
384 
385 h5part_int64_t
h5bl_3d_write_3dvector_field_i4(h5part_int64_t * f,const char * field_name,const h5part_int32_t * xval,const h5part_int32_t * yval,const h5part_int32_t * zval,const int l_field_name)386 h5bl_3d_write_3dvector_field_i4 (
387 	h5part_int64_t *f,	      /*!< file handle */
388 	const char *field_name,	 /*!< name of the data set */
389 	const h5part_int32_t *xval,   /*!< array of x component data */
390 	const h5part_int32_t *yval,   /*!< array of y component data */
391 	const h5part_int32_t *zval,   /*!< array of z component data */
392 	const int l_field_name
393 	) {
394 
395 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
396 
397 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
398 
399 	h5part_int64_t herr = H5Block3dWrite3dVectorFieldInt32 (
400 		filehandle, field_name2, xval, yval, zval );
401 
402 	free ( field_name2 );
403 	return herr;
404 }
405 
406 #if ! defined(F77_NO_UNDERSCORE)
407 #define h5bl_3d_read_3dvector_field_i4 F77NAME ( \
408 	h5bl_3d_read_3dvector_field_i4_, \
409 	H5BL_3D_READ_3DVECTOR_FIELD_I4 )
410 #endif
411 
412 h5part_int64_t
h5bl_3d_read_3dvector_field_i4(h5part_int64_t * f,const char * field_name,h5part_int32_t * xval,h5part_int32_t * yval,h5part_int32_t * zval,const int l_field_name)413 h5bl_3d_read_3dvector_field_i4 (
414 	h5part_int64_t *f,	      /*!< file handle */
415 	const char *field_name,	 /*!< name of the data set */
416 	h5part_int32_t *xval,	 /*!< array of x component data */
417 	h5part_int32_t *yval,	 /*!< array of y component data */
418 	h5part_int32_t *zval,	 /*!< array of z component data */
419 	const int l_field_name
420 	) {
421 
422 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
423 
424 	char *field_name2 =  _H5Part_strdupfor2c ( field_name,  l_field_name );
425 
426 	h5part_int64_t herr = H5Block3dRead3dVectorFieldInt32 (
427 		filehandle, field_name2, xval, yval, zval );
428 
429 	free ( field_name2 );
430 	return herr;
431 }
432 
433 #if ! defined(F77_NO_UNDERSCORE)
434 #define h5bl_writefieldattrib_r8 F77NAME ( \
435 	h5bl_writefieldattrib_r8_, \
436 	H5BL_WRITEFIELDATTRIB_R8 )
437 #endif
438 
439 h5part_int64_t
h5bl_writefieldattrib_r8(h5part_int64_t * f,const char * field_name,const char * attrib_name,const h5part_float64_t * attrib_value,const h5part_int64_t * attrib_nelem,const int l_field_name,const int l_attrib_name)440 h5bl_writefieldattrib_r8 (
441 	h5part_int64_t *f,
442 	const char *field_name,
443 	const char *attrib_name,
444 	const h5part_float64_t *attrib_value,
445 	const h5part_int64_t *attrib_nelem,
446 	const int l_field_name,
447 	const int l_attrib_name
448 	) {
449 
450 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
451 
452 	char *field_name2 = _H5Part_strdupfor2c ( field_name,  l_field_name );
453 	char *attrib_name2 =_H5Part_strdupfor2c ( attrib_name, l_attrib_name );
454 
455 	h5part_int64_t herr = H5BlockWriteFieldAttribFloat64 (
456 		filehandle, field_name2, attrib_name2,
457 		attrib_value, *attrib_nelem );
458 
459 	free ( field_name2 );
460 	free ( attrib_name2 );
461 	return herr;
462 }
463 
464 #if ! defined(F77_NO_UNDERSCORE)
465 #define h5bl_writefieldattrib_r4 F77NAME ( \
466 	h5bl_writefieldattrib_r4_, \
467 	H5BL_WRITEFIELDATTRIB_R4 )
468 #endif
469 
470 h5part_int64_t
h5bl_writefieldattrib_r4(h5part_int64_t * f,const char * field_name,const char * attrib_name,const h5part_float32_t * attrib_value,const h5part_int64_t * attrib_nelem,const int l_field_name,const int l_attrib_name)471 h5bl_writefieldattrib_r4 (
472 	h5part_int64_t *f,
473 	const char *field_name,
474 	const char *attrib_name,
475 	const h5part_float32_t *attrib_value,
476 	const h5part_int64_t *attrib_nelem,
477 	const int l_field_name,
478 	const int l_attrib_name
479 	) {
480 
481 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
482 
483 	char *field_name2 = _H5Part_strdupfor2c ( field_name,  l_field_name );
484 	char *attrib_name2 =_H5Part_strdupfor2c ( attrib_name, l_attrib_name );
485 
486 	h5part_int64_t herr = H5BlockWriteFieldAttribFloat32 (
487 		filehandle, field_name2, attrib_name2,
488 		attrib_value, *attrib_nelem );
489 
490 	free ( field_name2 );
491 	free ( attrib_name2 );
492 	return herr;
493 }
494 
495 #if ! defined(F77_NO_UNDERSCORE)
496 #define h5bl_writefieldattrib_i8 F77NAME ( \
497 	h5bl_writefieldattrib_i8_, \
498 	H5BL_WRITEFIELDATTRIB_I8 )
499 #endif
500 
501 h5part_int64_t
h5bl_writefieldattrib_i8(h5part_int64_t * f,const char * field_name,const char * attrib_name,const h5part_int64_t * attrib_value,const h5part_int64_t * attrib_nelem,const int l_field_name,const int l_attrib_name)502 h5bl_writefieldattrib_i8 (
503 	h5part_int64_t *f,
504 	const char *field_name,
505 	const char *attrib_name,
506 	const h5part_int64_t *attrib_value,
507 	const h5part_int64_t *attrib_nelem,
508 	const int l_field_name,
509 	const int l_attrib_name
510 	) {
511 
512 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
513 
514 	char *field_name2 = _H5Part_strdupfor2c ( field_name,  l_field_name );
515 	char *attrib_name2 =_H5Part_strdupfor2c ( attrib_name, l_attrib_name );
516 
517 	h5part_int64_t herr = H5BlockWriteFieldAttribInt64 (
518 		filehandle, field_name2, attrib_name2,
519 		attrib_value, *attrib_nelem );
520 
521 	free ( field_name2 );
522 	free ( attrib_name2 );
523 	return herr;
524 }
525 
526 #if ! defined(F77_NO_UNDERSCORE)
527 #define h5bl_writefieldattrib_i4 F77NAME ( \
528 	h5bl_writefieldattrib_i4_, \
529 	H5BL_WRITEFIELDATTRIB_I4 )
530 #endif
531 
532 h5part_int64_t
h5bl_writefieldattrib_i4(h5part_int64_t * f,const char * field_name,const char * attrib_name,const h5part_int32_t * attrib_value,const h5part_int64_t * attrib_nelem,const int l_field_name,const int l_attrib_name)533 h5bl_writefieldattrib_i4 (
534 	h5part_int64_t *f,
535 	const char *field_name,
536 	const char *attrib_name,
537 	const h5part_int32_t *attrib_value,
538 	const h5part_int64_t *attrib_nelem,
539 	const int l_field_name,
540 	const int l_attrib_name
541 	) {
542 
543 	H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
544 
545 	char *field_name2 = _H5Part_strdupfor2c ( field_name,  l_field_name );
546 	char *attrib_name2 =_H5Part_strdupfor2c ( attrib_name, l_attrib_name );
547 
548 	h5part_int64_t herr = H5BlockWriteFieldAttribInt32 (
549 		filehandle, field_name2, attrib_name2,
550 		attrib_value, *attrib_nelem );
551 
552 	free ( field_name2 );
553 	free ( attrib_name2 );
554 	return herr;
555 }
556