src/H5PartF.c

src/H5BlockF.c
	- use Fortron function name in definition, define macros for
	  function names only, if we have to rename them
	- use function "_H5Part_strdupfor2c()" and "_H5Part_strc2for()" 
	  for string conversion
This commit is contained in:
2006-09-22 20:49:17 +00:00
parent 9e9f2fdb9a
commit b3da7610f1
2 changed files with 666 additions and 494 deletions
+76 -135
View File
@@ -4,100 +4,78 @@
#include <hdf5.h>
#ifdef F77_SINGLE_UNDERSCORE
#define F77NAME(a,b,c) a
#elif defined(F77_NO_UNDERSCORE)
#define F77NAME(a,b,c) b
#if defined(F77_SINGLE_UNDERSCORE)
#define F77NAME(a,b) a
#elif defined(F77_CRAY_UNDERSCORE)
#define F77NAME(a,b,c) c
#define F77NAME(a,b) b
#elif defined(F77_NO_UNDERSCORE)
#else
#error Error, no way to determine how to construct fortran bindings
#endif
#if ! defined(F77_NO_UNDERSCORE)
#define f_h5bl_define3dlayout F77NAME ( \
#define h5bl_define3dlayout F77NAME ( \
h5bl_define3dlayout_, \
h5bl_define3dlayout, \
H5BL_DEFINE3DLAYOUT )
#define f_h5bl_get_partition_of_proc F77NAME ( \
#define h5bl_get_partition_of_proc F77NAME ( \
h5bl_get_partition_of_proc_, \
h5bl_get_partition_of_proc, \
H5BL_GET_PARTITION_OF_PROC )
#define f_h5bl_get_reduced_partition_of_proc F77NAME ( \
#define h5bl_get_reduced_partition_of_proc F77NAME ( \
h5bl_get_reduced_partition_of_proc_,\
h5bl_get_reduced_partition_of_proc,\
H5BL_GET_REDUCED_PARTITION_OF_PROC )
#define f_h5bl_get_proc_of F77NAME ( \
#define h5bl_get_proc_of F77NAME ( \
h5bl_get_proc_of_, \
h5bl_get_proc_of, \
H5BL_GET_PROC_OF )
#define f_h5bl_3d_read_scalar_field F77NAME ( \
#define h5bl_3d_read_scalar_field F77NAME ( \
h5bl_3d_read_scalar_field_, \
h5bl_3d_read_scalar_field, \
H5BL_3D_READ_SCALAR_FIELD )
#define f_h5bl_3d_write_scalar_field F77NAME ( \
#define h5bl_3d_write_scalar_field F77NAME ( \
h5bl_3d_write_scalar_field_, \
h5bl_3d_write_scalar_field, \
H5BL_3D_WRITE_SCALAR_FIELD )
#define f_h5bl_3d_read_3dvector_field F77NAME ( \
#define h5bl_3d_read_3dvector_field F77NAME ( \
h5bl_3d_read_3dvector_field_, \
h5bl_3d_read_3dvector_field, \
H5BL_3D_READ_3DVECTOR_FIELD )
#define f_h5bl_3d_write_3dvector_field F77NAME ( \
#define h5bl_3d_write_3dvector_field F77NAME ( \
h5bl_3d_write_3dvector_field_, \
h5bl_3d_write_3dvector_field, \
H5BL_3D_WRITE_3DVECTOR_FIELD )
#define f_h5bl_getnumfields F77NAME ( \
#define h5bl_getnumfields F77NAME ( \
h5bl_getnumfields_, \
h5bl_getnumfields, \
H5BL_GETNUMFIELDS )
#define f_h5bl_getfieldinfo F77NAME ( \
#define h5bl_getfieldinfo F77NAME ( \
h5bl_getfieldinfo_, \
h5bl_getfieldinfo, \
H5BL_GETFIELDINFO )
#define f_h5bl_writefieldattrib_r8 F77NAME ( \
#define h5bl_writefieldattrib_r8 F77NAME ( \
h5bl_writefieldattrib_r8_, \
h5bl_writefieldattrib_r8, \
H5BL_WRITEFIELDATTRIB_R8 )
#define f_h5bl_writefieldattrib_i8 F77NAME ( \
#define h5bl_writefieldattrib_i8 F77NAME ( \
h5bl_writefieldattrib_i8_, \
h5bl_writefieldattrib_i8, \
H5BL_WRITEFIELDATTRIB_I8 )
#define f_h5bl_writefieldattrib_string F77NAME ( \
#define h5bl_writefieldattrib_string F77NAME ( \
h5bl_writefieldattrib_string_, \
h5bl_writefieldattrib_string, \
H5BL_WRITEFIELDATTRIB_STRING )
#define f_h5bl_getnfieldattribs F77NAME ( \
#define h5bl_getnfieldattribs F77NAME ( \
h5bl_getnfieldattribs_, \
h5bl_getnfieldattribs, \
H5BL_GETNFIELDATTRIBS )
#define f_h5bl_getfieldattribinfo F77NAME ( \
#define h5bl_getfieldattribinfo F77NAME ( \
h5bl_getfieldattribinfo_, \
h5bl_getfieldattribinfo, \
h5bl_getfieldattribinfo )
#define f_h5bl_readfieldattrib_i8 F77NAME ( \
#define h5bl_readfieldattrib_i8 F77NAME ( \
h5bl_readfieldattrib_i8_, \
h5bl_readfieldattrib_i8, \
H5BL_READFIELDATTRIB_I8 )
#define f_h5bl_readfieldattrib_r8 F77NAME ( \
#define h5bl_readfieldattrib_r8 F77NAME ( \
h5bl_readfieldattrib_r8_, \
h5bl_readfieldattrib_r8, \
H5BL_READFIELDATTRIB_R8 )
#define f_h5bl_readfieldattrib_string F77NAME ( \
#define h5bl_readfieldattrib_string F77NAME ( \
h5bl_readfieldattrib_string_, \
h5bl_readfieldattrib_string, \
H5BL_READFIELDATTRIB_STRING )
#define f_h5bl_has_fielddata F77NAME ( \
#define h5bl_has_fielddata F77NAME ( \
h5bl_has_fielddata_, \
h5bl_has_fielddata, \
H5BL_HAS_FIELDDATA )
#endif
h5part_int64_t
f_h5bl_define3dlayout (
h5bl_define3dlayout (
h5part_int64_t *f,
const h5part_int64_t *i_start, /*!< start index of i */
const h5part_int64_t *i_end, /*!< end index of i */
@@ -117,8 +95,8 @@ f_h5bl_define3dlayout (
}
h5part_int64_t
f_h5bl_get_partition_of_proc (
h5part_int64_t *f, /*!< file handle */
h5bl_get_partition_of_proc (
h5part_int64_t *f, /*!< file handle */
const h5part_int64_t *proc,
h5part_int64_t *i_start, /*!< start index of i */
h5part_int64_t *i_end, /*!< end index of i */
@@ -137,7 +115,7 @@ f_h5bl_get_partition_of_proc (
}
h5part_int64_t
f_h5bl_get_reduced_partition_of_proc (
h5bl_get_reduced_partition_of_proc (
h5part_int64_t *f,
const h5part_int64_t *proc,
h5part_int64_t *i_start,
@@ -157,7 +135,7 @@ f_h5bl_get_reduced_partition_of_proc (
}
h5part_int64_t
f_h5bl_get_proc_of (
h5bl_get_proc_of (
h5part_int64_t *f,
const h5part_int64_t *i,
const h5part_int64_t *j,
@@ -170,7 +148,7 @@ f_h5bl_get_proc_of (
}
h5part_int64_t
f_h5bl_3d_read_scalar_field (
h5bl_3d_read_scalar_field (
h5part_int64_t *f,
const char *field_name,
h5part_float64_t *data,
@@ -179,9 +157,7 @@ f_h5bl_3d_read_scalar_field (
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = (char*)malloc(l_field_name+1);
strncpy ( field_name2, field_name, l_field_name );
field_name2[l_field_name] = '\0';
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dReadScalarField (
filehandle, field_name2, data );
@@ -191,7 +167,7 @@ f_h5bl_3d_read_scalar_field (
}
h5part_int64_t
f_h5bl_3d_write_scalar_field (
h5bl_3d_write_scalar_field (
h5part_int64_t *f,
const char *field_name,
const h5part_float64_t *data,
@@ -200,9 +176,7 @@ f_h5bl_3d_write_scalar_field (
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = (char*)malloc(l_field_name+1);
strncpy ( field_name2, field_name, l_field_name );
field_name2[l_field_name] = '\0';
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWriteScalarField (
filehandle, field_name2, data );
@@ -212,7 +186,7 @@ f_h5bl_3d_write_scalar_field (
}
h5part_int64_t
f_h5bl_3d_read_3dvector_field (
h5bl_3d_read_3dvector_field (
h5part_int64_t *f, /*!< file handle */
const char *field_name, /*!< name of the data set */
h5part_float64_t *xval, /*!< array of x component data */
@@ -223,9 +197,7 @@ f_h5bl_3d_read_3dvector_field (
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = (char*)malloc(l_field_name+1);
strncpy ( field_name2, field_name, l_field_name );
field_name2[l_field_name] = '\0';
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dRead3dVectorField (
filehandle, field_name2, xval, yval, zval );
@@ -235,8 +207,8 @@ f_h5bl_3d_read_3dvector_field (
}
h5part_int64_t
f_h5bl_3d_write_3dvector_field (
h5part_int64_t *f, /*!< file handle */
h5bl_3d_write_3dvector_field (
h5part_int64_t *f, /*!< file handle */
const char *field_name, /*!< name of the data set */
const h5part_float64_t *xval, /*!< array of x component data */
const h5part_float64_t *yval, /*!< array of y component data */
@@ -246,9 +218,7 @@ f_h5bl_3d_write_3dvector_field (
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = (char*)malloc(l_field_name+1);
strncpy ( field_name2, field_name, l_field_name );
field_name2[l_field_name] = '\0';
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWrite3dVectorField (
filehandle, field_name2, xval, yval, zval );
@@ -258,7 +228,7 @@ f_h5bl_3d_write_3dvector_field (
}
h5part_int64_t
f_h5bl_getnumfields (
h5bl_getnumfields (
h5part_int64_t *f /*!< file handle */
) {
@@ -268,7 +238,7 @@ f_h5bl_getnumfields (
}
h5part_int64_t
f_h5bl_getfieldinfo (
h5bl_getfieldinfo (
h5part_int64_t *f,
const h5part_int64_t *idx,
char *field_name,
@@ -280,12 +250,15 @@ f_h5bl_getfieldinfo (
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
return H5BlockGetFieldInfo (
filehandle, *idx, field_name, l_field_name, grid_rank, grid_dims, field_dims );
h5part_int64_t herr = H5BlockGetFieldInfo (
filehandle, *idx, field_name, l_field_name,
grid_rank, grid_dims, field_dims );
_H5Part_strc2for ( field_name, l_field_name );
return herr;
}
h5part_int64_t
f_h5bl_writefieldattrib_r8 (
h5bl_writefieldattrib_r8 (
h5part_int64_t *f,
const char *field_name,
const char *attrib_name,
@@ -297,13 +270,8 @@ f_h5bl_writefieldattrib_r8 (
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = (char*)malloc(l_field_name+1);
strncpy ( field_name2, field_name, l_field_name );
field_name2[l_field_name] = '\0';
char *attrib_name2 = (char*)malloc(l_attrib_name+1);
strncpy ( attrib_name2, attrib_name, l_attrib_name );
attrib_name2[l_attrib_name] = '\0';
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
char *attrib_name2 =_H5Part_strdupfor2c ( attrib_name, l_attrib_name );
h5part_int64_t herr = H5BlockWriteFieldAttrib (
filehandle, field_name2, attrib_name2, H5PART_FLOAT64,
@@ -316,7 +284,7 @@ f_h5bl_writefieldattrib_r8 (
h5part_int64_t
f_h5bl_writefieldattrib_i8 (
h5bl_writefieldattrib_i8 (
h5part_int64_t *f,
const char *field_name,
const char *attrib_name,
@@ -328,13 +296,8 @@ f_h5bl_writefieldattrib_i8 (
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = (char*)malloc(l_field_name+1);
strncpy ( field_name2, field_name, l_field_name );
field_name2[l_field_name] = '\0';
char *attrib_name2 = (char*)malloc(l_attrib_name+1);
strncpy ( attrib_name2, attrib_name, l_attrib_name );
attrib_name2[l_attrib_name] = '\0';
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
char *attrib_name2 =_H5Part_strdupfor2c ( attrib_name, l_attrib_name );
h5part_int64_t herr = H5BlockWriteFieldAttrib (
filehandle, field_name2, attrib_name2, H5PART_INT64,
@@ -346,7 +309,7 @@ f_h5bl_writefieldattrib_i8 (
}
h5part_int64_t
f_h5bl_writefieldattrib_string (
h5bl_writefieldattrib_string (
h5part_int64_t *f,
const char *field_name,
const char *attrib_name,
@@ -358,17 +321,9 @@ f_h5bl_writefieldattrib_string (
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = (char*)malloc(l_field_name+1);
strncpy ( field_name2, field_name, l_field_name );
field_name2[l_field_name] = '\0';
char *attrib_name2 = (char*)malloc(l_attrib_name+1);
strncpy ( attrib_name2, attrib_name, l_attrib_name );
attrib_name2[l_attrib_name] = '\0';
char *attrib_value2 = (char*)malloc(l_attrib_value+1);
strncpy ( attrib_value2, attrib_value, l_attrib_value );
attrib_value2[l_attrib_value] = '\0';
char *field_name2 =_H5Part_strdupfor2c ( field_name, l_field_name );
char *attrib_name2=_H5Part_strdupfor2c ( attrib_name, l_attrib_name );
char *attrib_value2=_H5Part_strdupfor2c( attrib_value,l_attrib_value );
h5part_int64_t herr = H5BlockWriteFieldAttribString (
filehandle, field_name2, attrib_name2, attrib_value2 );
@@ -379,8 +334,9 @@ f_h5bl_writefieldattrib_string (
return herr;
}
h5part_int64_t
f_h5bl_getnfieldattribs (
h5bl_getnfieldattribs (
h5part_int64_t *f,
const char *field_name,
const int l_field_name
@@ -388,9 +344,7 @@ f_h5bl_getnfieldattribs (
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = (char*)malloc(l_field_name+1);
strncpy ( field_name2, field_name, l_field_name );
field_name2[l_field_name] = '\0';
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5BlockGetNumFieldAttribs (
filehandle, field_name2 );
@@ -400,7 +354,7 @@ f_h5bl_getnfieldattribs (
}
h5part_int64_t
f_h5bl_getfieldattribinfo (
h5bl_getfieldattribinfo (
h5part_int64_t *f,
const char *field_name,
const h5part_int64_t *attrib_idx,
@@ -414,23 +368,23 @@ f_h5bl_getfieldattribinfo (
h5part_int64_t attrib_type;
char *field_name2 = (char*)malloc(l_field_name+1);
strncpy ( field_name2, field_name, l_field_name );
field_name2[l_field_name] = '\0';
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5BlockGetFieldAttribInfo (
filehandle, field_name2, *attrib_idx,
attrib_name, l_attrib_name+1,
attrib_name, l_attrib_name,
&attrib_type,
attrib_nelem );
_H5Part_strc2for ( attrib_name, l_attrib_name );
free ( field_name2 );
return herr;
}
h5part_int64_t
f_h5bl_readfieldattrib_i8 (
h5bl_readfieldattrib_i8 (
h5part_int64_t *f,
const char *field_name,
const char *attrib_name,
@@ -441,13 +395,8 @@ f_h5bl_readfieldattrib_i8 (
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = (char*)malloc(l_field_name+1);
strncpy ( field_name2, field_name, l_field_name );
field_name2[l_field_name] = '\0';
char *attrib_name2 = (char*)malloc(l_attrib_name+1);
strncpy ( attrib_name2, attrib_name, l_attrib_name );
attrib_name2[l_attrib_name] = '\0';
char *field_name2 =_H5Part_strdupfor2c ( field_name, l_field_name );
char *attrib_name2=_H5Part_strdupfor2c ( attrib_name, l_attrib_name );
h5part_int64_t herr = H5BlockReadFieldAttrib (
filehandle, field_name2, attrib_name2, attrib_value );
@@ -458,7 +407,7 @@ f_h5bl_readfieldattrib_i8 (
}
h5part_int64_t
f_h5bl_readfieldattrib_r8 (
h5bl_readfieldattrib_r8 (
h5part_int64_t *f,
const char *field_name,
const char *attrib_name,
@@ -469,13 +418,8 @@ f_h5bl_readfieldattrib_r8 (
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = (char*)malloc(l_field_name+1);
strncpy ( field_name2, field_name, l_field_name );
field_name2[l_field_name] = '\0';
char *attrib_name2 = (char*)malloc(l_attrib_name+1);
strncpy ( attrib_name2, attrib_name, l_attrib_name );
attrib_name2[l_attrib_name] = '\0';
char *field_name2 =_H5Part_strdupfor2c ( field_name, l_field_name );
char *attrib_name2=_H5Part_strdupfor2c ( attrib_name, l_attrib_name );
h5part_int64_t herr = H5BlockReadFieldAttrib (
filehandle, field_name2, attrib_name2, attrib_value );
@@ -486,7 +430,7 @@ f_h5bl_readfieldattrib_r8 (
}
h5part_int64_t
f_h5bl_readfieldattrib_string (
h5bl_readfieldattrib_string (
h5part_int64_t *f,
const char *field_name,
const char *attrib_name,
@@ -498,24 +442,21 @@ f_h5bl_readfieldattrib_string (
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = (char*)malloc(l_field_name+1);
strncpy ( field_name2, field_name, l_field_name );
field_name2[l_field_name] = '\0';
char *attrib_name2 = (char*)malloc(l_attrib_name+1);
strncpy ( attrib_name2, attrib_name, l_attrib_name );
attrib_name2[l_attrib_name] = '\0';
char *field_name2 =_H5Part_strdupfor2c ( field_name, l_field_name );
char *attrib_name2=_H5Part_strdupfor2c ( attrib_name, l_attrib_name );
h5part_int64_t herr = H5BlockReadFieldAttrib (
filehandle, field_name2, attrib_name2, attrib_value );
_H5Part_strc2for ( attrib_value, l_attrib_value );
free ( field_name2 );
free ( attrib_name2 );
return herr;
}
h5part_int64_t
f_h5bl_has_fielddata (
h5bl_has_fielddata (
h5part_int64_t *f
) {
+590 -359
View File
File diff suppressed because it is too large Load Diff