Files
src_old/src/H5BlockReadWriteF.c
T
Marc Howison 122e913f08 Merged changes from LBL, including:
* read/write call variants for different datatypes
* HDF5 properties tuned for lustre filesystems and the Cray XT (enabled using flags passed during file open)
* HDF5 chunking for field data
* HDF5 alignment (set during file open)
* support for both HDF5 1.6 and 1.8 using #if statements
* a new error reporting level: debug_detail (HDF5 errors are now printed at debug level 1 by default)

These changes have undergone limited testing.
I will begin using this version for my H5Part projects so that I can test it more thoroughly.

~Mark
2009-06-18 20:29:02 +00:00

432 lines
11 KiB
C

#include "H5Part.h"
#include "H5PartPrivate.h"
#include "H5Block.h"
#include "H5BlockReadWrite.h"
#include "Underscore.h"
#if defined(F77_SINGLE_UNDERSCORE)
#define F77NAME(a,b) a
#elif defined(F77_CRAY_UNDERSCORE)
#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 h5bl_3d_write_scalar_field_r8 F77NAME ( \
h5bl_3d_write_scalar_field_r8_, \
H5BL_3D_WRITE_SCALAR_FIELD_R8 )
#endif
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
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWriteScalarFieldFloat64 (
filehandle, field_name2, data );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_read_scalar_field_r8 F77NAME ( \
h5bl_3d_read_scalar_field_r8_, \
H5BL_3D_READ_SCALAR_FIELD_R8 )
#endif
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
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWriteScalarFieldFloat64 (
filehandle, field_name2, data );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_write_3dvector_field_r8 F77NAME ( \
h5bl_3d_write_3dvector_field_r8_, \
H5BL_3D_WRITE_3DVECTOR_FIELD_R8 )
#endif
h5part_int64_t
h5bl_3d_write_3dvector_field_r8 (
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 */
const h5part_float64_t *zval, /*!< array of z component data */
const int l_field_name
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWrite3dVectorFieldFloat64 (
filehandle, field_name2, xval, yval, zval );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_read_3dvector_field_r8 F77NAME ( \
h5bl_3d_read_3dvector_field_r8_, \
H5BL_3D_READ_3DVECTOR_FIELD_R8 )
#endif
h5part_int64_t
h5bl_3d_read_3dvector_field_r8 (
h5part_int64_t *f, /*!< file handle */
const char *field_name, /*!< name of the data set */
h5part_float64_t *xval, /*!< array of x component data */
h5part_float64_t *yval, /*!< array of y component data */
h5part_float64_t *zval, /*!< array of z component data */
const int l_field_name
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dRead3dVectorFieldFloat64 (
filehandle, field_name2, xval, yval, zval );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_write_scalar_field_r4 F77NAME ( \
h5bl_3d_write_scalar_field_r4_, \
H5BL_3D_WRITE_SCALAR_FIELD_R4 )
#endif
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
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWriteScalarFieldFloat32 (
filehandle, field_name2, data );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_read_scalar_field_r4 F77NAME ( \
h5bl_3d_read_scalar_field_r4_, \
H5BL_3D_READ_SCALAR_FIELD_R4 )
#endif
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
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWriteScalarFieldFloat32 (
filehandle, field_name2, data );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_write_3dvector_field_r4 F77NAME ( \
h5bl_3d_write_3dvector_field_r4_, \
H5BL_3D_WRITE_3DVECTOR_FIELD_R4 )
#endif
h5part_int64_t
h5bl_3d_write_3dvector_field_r4 (
h5part_int64_t *f, /*!< file handle */
const char *field_name, /*!< name of the data set */
const h5part_float32_t *xval, /*!< array of x component data */
const h5part_float32_t *yval, /*!< array of y component data */
const h5part_float32_t *zval, /*!< array of z component data */
const int l_field_name
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWrite3dVectorFieldFloat32 (
filehandle, field_name2, xval, yval, zval );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_read_3dvector_field_r4 F77NAME ( \
h5bl_3d_read_3dvector_field_r4_, \
H5BL_3D_READ_3DVECTOR_FIELD_R4 )
#endif
h5part_int64_t
h5bl_3d_read_3dvector_field_r4 (
h5part_int64_t *f, /*!< file handle */
const char *field_name, /*!< name of the data set */
h5part_float32_t *xval, /*!< array of x component data */
h5part_float32_t *yval, /*!< array of y component data */
h5part_float32_t *zval, /*!< array of z component data */
const int l_field_name
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dRead3dVectorFieldFloat32 (
filehandle, field_name2, xval, yval, zval );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_write_scalar_field_i8 F77NAME ( \
h5bl_3d_write_scalar_field_i8_, \
H5BL_3D_WRITE_SCALAR_FIELD_I8 )
#endif
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
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWriteScalarFieldInt64 (
filehandle, field_name2, data );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_read_scalar_field_i8 F77NAME ( \
h5bl_3d_read_scalar_field_i8_, \
H5BL_3D_READ_SCALAR_FIELD_I8 )
#endif
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
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWriteScalarFieldInt64 (
filehandle, field_name2, data );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_write_3dvector_field_i8 F77NAME ( \
h5bl_3d_write_3dvector_field_i8_, \
H5BL_3D_WRITE_3DVECTOR_FIELD_I8 )
#endif
h5part_int64_t
h5bl_3d_write_3dvector_field_i8 (
h5part_int64_t *f, /*!< file handle */
const char *field_name, /*!< name of the data set */
const h5part_int64_t *xval, /*!< array of x component data */
const h5part_int64_t *yval, /*!< array of y component data */
const h5part_int64_t *zval, /*!< array of z component data */
const int l_field_name
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWrite3dVectorFieldInt64 (
filehandle, field_name2, xval, yval, zval );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_read_3dvector_field_i8 F77NAME ( \
h5bl_3d_read_3dvector_field_i8_, \
H5BL_3D_READ_3DVECTOR_FIELD_I8 )
#endif
h5part_int64_t
h5bl_3d_read_3dvector_field_i8 (
h5part_int64_t *f, /*!< file handle */
const char *field_name, /*!< name of the data set */
h5part_int64_t *xval, /*!< array of x component data */
h5part_int64_t *yval, /*!< array of y component data */
h5part_int64_t *zval, /*!< array of z component data */
const int l_field_name
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dRead3dVectorFieldInt64 (
filehandle, field_name2, xval, yval, zval );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_write_scalar_field_i4 F77NAME ( \
h5bl_3d_write_scalar_field_i4_, \
H5BL_3D_WRITE_SCALAR_FIELD_I4 )
#endif
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
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWriteScalarFieldInt32 (
filehandle, field_name2, data );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_read_scalar_field_i4 F77NAME ( \
h5bl_3d_read_scalar_field_i4_, \
H5BL_3D_READ_SCALAR_FIELD_I4 )
#endif
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
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWriteScalarFieldInt32 (
filehandle, field_name2, data );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_write_3dvector_field_i4 F77NAME ( \
h5bl_3d_write_3dvector_field_i4_, \
H5BL_3D_WRITE_3DVECTOR_FIELD_I4 )
#endif
h5part_int64_t
h5bl_3d_write_3dvector_field_i4 (
h5part_int64_t *f, /*!< file handle */
const char *field_name, /*!< name of the data set */
const h5part_int32_t *xval, /*!< array of x component data */
const h5part_int32_t *yval, /*!< array of y component data */
const h5part_int32_t *zval, /*!< array of z component data */
const int l_field_name
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dWrite3dVectorFieldInt32 (
filehandle, field_name2, xval, yval, zval );
free ( field_name2 );
return herr;
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5bl_3d_read_3dvector_field_i4 F77NAME ( \
h5bl_3d_read_3dvector_field_i4_, \
H5BL_3D_READ_3DVECTOR_FIELD_I4 )
#endif
h5part_int64_t
h5bl_3d_read_3dvector_field_i4 (
h5part_int64_t *f, /*!< file handle */
const char *field_name, /*!< name of the data set */
h5part_int32_t *xval, /*!< array of x component data */
h5part_int32_t *yval, /*!< array of y component data */
h5part_int32_t *zval, /*!< array of z component data */
const int l_field_name
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
char *field_name2 = _H5Part_strdupfor2c ( field_name, l_field_name );
h5part_int64_t herr = H5Block3dRead3dVectorFieldInt32 (
filehandle, field_name2, xval, yval, zval );
free ( field_name2 );
return herr;
}