Files
src_old/src/Fortran/H5Part_io.c
T

186 lines
5.6 KiB
C

/*
Copyright (c) 2006-2015, The Regents of the University of California,
through Lawrence Berkeley National Laboratory (subject to receipt of any
required approvals from the U.S. Dept. of Energy) and the Paul Scherrer
Institut (Switzerland). All rights reserved.
License: see file COPYING in top level of source distribution.
*/
#include "h5_private.h"
#include "h5core/h5_debug.h"
#include "h5core/h5u_io.h"
/*==================Writing data ============*/
#define h5pt_writedata_r8 FC_MANGLING ( \
h5pt_writedata_r8, \
H5PT_WRITEDATA_R8 )
h5_int64_t
h5pt_writedata_r8 (
const h5_int64_t* const fh,
const char* const name,
const h5_float64_t* const data,
const int l_name
) {
h5_file_t f = h5_filehandlefor2c (fh);
H5_API_ENTER (h5_int64_t,
"fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_write_data (
f, name2, (void*)data, H5T_NATIVE_DOUBLE );
free ( name2 );
H5_API_RETURN(herr);
}
#define h5pt_writedata_r4 FC_MANGLING ( \
h5pt_writedata_r4, \
H5PT_WRITEDATA_R4 )
h5_int64_t
h5pt_writedata_r4 (
const h5_int64_t* const fh,
const char* const name,
const h5_float32_t* const data,
const int l_name
) {
h5_file_t f = h5_filehandlefor2c (fh);
H5_API_ENTER (h5_int64_t,
"fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_write_data (
f, name2, (void*)data, H5T_NATIVE_FLOAT );
free ( name2 );
H5_API_RETURN(herr);
}
#define h5pt_writedata_i8 FC_MANGLING ( \
h5pt_writedata_i8, \
H5PT_WRITEDATA_I8 )
h5_int64_t
h5pt_writedata_i8 (
const h5_int64_t* const fh,
const char* const name,
const h5_int64_t* const data,
const int l_name
) {
h5_file_t f = h5_filehandlefor2c (fh);
H5_API_ENTER (h5_int64_t,
"fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_write_data (
f, name2, (void*)data, H5T_NATIVE_INT64 );
free ( name2 );
H5_API_RETURN(herr);
}
#define h5pt_writedata_i4 FC_MANGLING ( \
h5pt_writedata_i4, \
H5PT_WRITEDATA_I4 )
h5_int64_t
h5pt_writedata_i4 (
const h5_int64_t* const fh,
const char* const name,
const h5_int32_t* const data,
const int l_name
) {
h5_file_t f = h5_filehandlefor2c (fh);
H5_API_ENTER (h5_int64_t,
"fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_write_data (
f, name2, (void*)data, H5T_NATIVE_INT32 );
free ( name2 );
H5_API_RETURN(herr);
}
/*==================Reading data ============*/
#define h5pt_readdata_r8 FC_MANGLING ( \
h5pt_readdata_r8, \
H5PT_READDATA_R8 )
h5_int64_t
h5pt_readdata_r8 (
const h5_int64_t* const fh,
const char* const name,
h5_float64_t* const data,
const int l_name
) {
h5_file_t f = h5_filehandlefor2c (fh);
H5_API_ENTER (h5_int64_t,
"fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_read_data (
f, name2, data, H5T_NATIVE_DOUBLE );
free ( name2 );
H5_API_RETURN(herr);
}
#define h5pt_readdata_r4 FC_MANGLING ( \
h5pt_readdata_r4, \
H5PT_READDATA_R4 )
h5_int64_t
h5pt_readdata_r4 (
const h5_int64_t* const fh,
const char* const name,
h5_float32_t* const data,
const int l_name
) {
h5_file_t f = h5_filehandlefor2c (fh);
H5_API_ENTER (h5_int64_t,
"fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_read_data (
f, name2, data, H5T_NATIVE_FLOAT );
free ( name2 );
H5_API_RETURN(herr);
}
#define h5pt_readdata_i8 FC_MANGLING ( \
h5pt_readdata_i8, \
H5PT_READDATA_I8 )
h5_int64_t
h5pt_readdata_i8 (
const h5_int64_t* const fh,
const char* const name,
h5_int64_t* const data,
const int l_name
) {
h5_file_t f = h5_filehandlefor2c (fh);
H5_API_ENTER (h5_int64_t,
"fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_read_data (
f, name2, data, H5T_NATIVE_INT64 );
free ( name2 );
H5_API_RETURN(herr);
}
#define h5pt_readdata_i4 FC_MANGLING ( \
h5pt_readdata_i4, \
H5PT_READDATA_I4 )
h5_int64_t
h5pt_readdata_i4 (
const h5_int64_t* const fh,
const char* const name,
h5_int32_t* const data,
const int l_name
) {
h5_file_t f = h5_filehandlefor2c (fh);
H5_API_ENTER (h5_int64_t,
"hf=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_read_data (
f, name2, data, H5T_NATIVE_INT32 );
free ( name2 );
H5_API_RETURN(herr);
}