Fortran API review

This commit is contained in:
2013-09-26 15:51:49 +02:00
parent c3a74c8ed4
commit ee23c8cc4b
16 changed files with 1644 additions and 1637 deletions
+141 -329
View File
@@ -13,298 +13,113 @@
#include "h5core/h5_debug.h"
#include "h5core/h5_model.h"
/* file handling interface */
static inline h5_int64_t
open_file (
const char *name,
const int l_name,
h5_int32_t flags,
MPI_Comm ccomm,
h5_size_t align
#define h5_createprop_file F77_NAME( \
h5_createprop_file, \
h5_createprop_file_, \
H5_CREATEPROP_FILE)
h5_int64_t
h5_createprop_file (
void
) {
char *name2 = h5_strdupfor2c ( name, l_name );
h5_file_t f = h5_open_file ( name2, flags, ccomm, align );
free ( name2 );
return (h5_int64_t)f;
H5_API_ENTER (h5_int64_t, "%s", "");
H5_API_RETURN ((h5_int64_t)h5_create_prop (H5_PROP_FILE));
}
#define h5_openr F77_NAME( \
h5_openr, \
h5_openr_, \
H5_OPENR)
#define h5_setprop_filempio F77_NAME( \
h5_setprop_filempio, \
h5_setprop_filempio_, \
H5_SETPROP_FILEMPIO)
h5_int64_t
h5_openr (
const char *file_name,
const int l_file_name
) {
H5_API_ENTER (h5_int64_t, "file_name='%s'",
file_name);
H5_API_RETURN (open_file (file_name, l_file_name, H5_O_RDONLY, 0, 0));
h5_setprop_filempio (
h5_int64_t* _prop,
MPI_Fint* _comm
) {
H5_API_ENTER (h5_int64_t,
"prop=%lld, comm=%lld",
(long long int)*_prop, (long long int)*_comm);
h5_prop_t prop = (h5_prop_t)*_prop;
MPI_Comm comm = MPI_Comm_f2c (*_comm);
H5_API_RETURN ((h5_int64_t)h5_set_prop_file_mpio (prop, &comm));
}
#define h5_openw F77_NAME( \
h5_openw, \
h5_openw_, \
H5_OPENW)
#define h5_setprop_filealign F77_NAME ( \
h5_setprop_filealign, \
h5_setprop_filealign_, \
H5_SETPROP_FILEALIGN)
h5_int64_t
h5_openw (
const char *file_name,
const int l_file_name
) {
H5_API_ENTER (h5_int64_t, "file_name='%s'",
file_name);
H5_API_RETURN (open_file (file_name, l_file_name, H5_O_WRONLY, 0, 0));
h5_setprop_filealign (
h5_int64_t* _prop,
h5_int64_t* align
) {
H5_API_ENTER (h5_err_t,
"prop=%lld, align=%lld",
(long long int)*_prop, (long long int)*align);
h5_prop_t prop = (h5_prop_t)*_prop;
H5_API_RETURN (h5_set_prop_file_align (prop, *align));
}
#define h5_opena F77_NAME( \
h5_opena, \
h5_opena_, \
H5_OPENA)
#define h5_setprop_filethrottle F77_NAME ( \
h5_setprop_filethrottle, \
h5_setprop_filethrottle_, \
H5_SETPROP_FILETHROTTLE)
h5_int64_t
h5_opena (
const char *file_name,
const int l_file_name
) {
H5_API_ENTER (h5_int64_t, "file_name='%s'",
file_name);
H5_API_RETURN (open_file (file_name, l_file_name, H5_O_APPEND, 0, 0));
h5_setprop_filethrottle (
h5_int64_t* _prop,
h5_int64_t* throttle
) {
H5_API_ENTER (
h5_err_t,
"prop=%lld, throttle=%lld",
(long long int)*_prop, (long long int)*throttle);
h5_prop_t prop = (h5_prop_t)*_prop;
H5_API_RETURN (h5_set_prop_file_throttle (prop, *throttle));
}
#define h5_openr_align F77_NAME( \
h5_openr_align, \
h5_openr_align_, \
H5_OPENR_ALIGN)
#define h5_closeprop F77_NAME ( \
h5_closeprop, \
h5_closeprop_, \
H5_CLOSEPROP)
h5_int64_t
h5_openr_align (
const char *file_name,
const h5_int64_t *align,
const int l_file_name
) {
H5_API_ENTER (h5_int64_t, "file_name='%s', align=%llu",
file_name, (long long unsigned)align);
H5_API_RETURN (open_file (file_name, l_file_name, H5_O_RDONLY, 0, *align));
h5_closeprop (
h5_int64_t* _prop
) {
H5_API_ENTER (h5_err_t,
"prop=%lld",
(long long int)*_prop);
h5_prop_t prop = (h5_prop_t)*_prop;
H5_API_RETURN (h5_close_prop (prop));
}
#define h5_openw_align F77_NAME( \
h5_openw_align, \
h5_openw_align_, \
H5_OPENW_ALIGN)
#define h5_openfile F77_NAME( \
h5_openfile, \
h5_openfile_, \
H5_OPENFILE)
h5_int64_t
h5_openw_align (
const char *file_name,
const h5_int64_t *align,
const int l_file_name
) {
H5_API_ENTER (h5_int64_t, "file_name='%s', align=%llu",
file_name, (long long unsigned)align);
H5_API_RETURN (open_file (file_name, l_file_name, H5_O_WRONLY, 0, *align));
h5_openfile (
const char* _fname,
h5_int64_t* _mode,
h5_int64_t* _props,
const int _len_fname
) {
int len_fname = strlenf (_fname, _len_fname);
H5_API_ENTER (h5_int64_t,
"fname = %*s, mode=%lld, props=%lld",
len_fname, _fname, (long long int)*_mode, (long long int)*_props);
char* fname = h5_strdupfor2c (_fname, _len_fname);
h5_int64_t mode = *_mode;
h5_prop_t props = (h5_prop_t)*_props;
h5_file_t f = h5_open_file2 (fname, mode, props);
free (fname);
H5_API_RETURN ((h5_int64_t)f);
}
#define h5_opena_align F77_NAME( \
h5_opena_align, \
h5_opena_align_, \
H5_OPENA_ALIGN)
#define h5_closefile F77_NAME( \
h5_closefile, \
h5_closefile_, \
H5_CLOSEFILE)
h5_int64_t
h5_opena_align (
const char *file_name,
const h5_int64_t *align,
const int l_file_name
) {
H5_API_ENTER (h5_int64_t, "file_name='%s', align=%llu",
file_name, (long long unsigned)align);
H5_API_RETURN (open_file (file_name, l_file_name, H5_O_APPEND, 0, *align));
}
#ifdef PARALLEL_IO
h5_int32_t
flagsfor2c (
const char* flags,
const int l_flags
) {
if (flags == NULL)
return 0;
h5_int32_t fbits = 0;
char* flags2 = h5_strdupfor2c (flags, l_flags);
flags2 = strtok (flags2, ",");
while (flags != NULL) {
if (strcmp (flags2, "vfd_mpiposix") == 0)
fbits |= H5_VFD_MPIPOSIX;
else if (strcmp (flags2, "vfd_core") == 0)
fbits |= H5_VFD_CORE;
else if (strcmp (flags2, "vfd_mpio_ind") == 0)
fbits |= H5_VFD_MPIIO_IND;
else if (strcmp (flags2, "fs_lustre") == 0)
fbits |= H5_FS_LUSTRE;
else {
// :FIXME: ignore unknown strings!?
}
flags2 = strtok (NULL, ",");
}
free (flags2);
return fbits;
}
static inline h5_int64_t
open_file_par (
const char* file_name,
const int l_file_name,
MPI_Fint* fcomm,
const h5_int32_t mode,
const char* flags,
const int l_flags,
h5_int64_t align
) {
return open_file (
file_name, l_file_name,
mode | flagsfor2c (flags, l_flags),
MPI_Comm_f2c (*fcomm),
align);
}
#define h5_openr_par F77_NAME( \
h5_openr_par, \
h5_openr_par_, \
H5_OPENR_PAR)
h5_int64_t
h5_openr_par (
const char *file_name,
MPI_Fint *fcomm,
const int l_file_name
) {
H5_API_ENTER (h5_int64_t, "file_name='%*s', fcomm=%d",
l_file_name, file_name, *fcomm);
H5_API_RETURN (
open_file_par (
file_name, l_file_name,
fcomm,
H5_O_RDONLY,
NULL, 0,
0));
}
#define h5_openw_par F77_NAME( \
h5_openw_par, \
h5_openw_par_, \
H5_OPENW_PAR)
h5_int64_t
h5_openw_par (
const char* file_name,
MPI_Fint* fcomm,
const int l_file_name
) {
H5_API_ENTER (h5_int64_t, "file_name='%*s', fcomm=%d",
l_file_name, file_name, *fcomm);
H5_API_RETURN (
open_file_par (
file_name, l_file_name,
fcomm,
H5_O_WRONLY,
NULL, 0,
0));
}
#define h5_opena_par F77_NAME( \
h5_opena_par, \
h5_opena_par_, \
H5_OPENA_PAR)
h5_int64_t
h5_opena_par (
const char* file_name,
MPI_Fint* fcomm,
const int l_file_name
) {
H5_API_ENTER (h5_int64_t, "file_name='%*s', fcomm=%d",
l_file_name, file_name, *fcomm);
H5_API_RETURN (
open_file_par (
file_name, l_file_name,
fcomm,
H5_O_APPEND,
NULL, 0,
0));
}
#define h5_openr_par_align F77_NAME( \
h5_openr_par_align, \
h5_openr_par_align_, \
H5_OPENR_PAR_ALIGN)
h5_int64_t
h5_openr_par_align (
const char *file_name,
MPI_Fint *fcomm,
const h5_int64_t *align,
const char *flags,
const int l_file_name,
const int l_flags
) {
H5_API_ENTER (h5_int64_t, "file_name='%*s', fcomm=%d, flags=%s, align=%lld",
l_file_name, file_name, *fcomm, flags, (long long)align);
H5_API_RETURN (
open_file_par (
file_name, l_file_name,
fcomm,
H5_O_RDONLY,
flags, l_flags,
*align));
}
#define h5_openw_par_align F77_NAME( \
h5_openw_par_align, \
h5_openw_par_align_, \
H5_OPENW_PAR_ALIGN)
h5_int64_t
h5_openw_par_align (
const char *file_name,
MPI_Fint *fcomm,
const h5_int64_t *align,
const char *flags,
const int l_file_name,
const int l_flags
) {
H5_API_ENTER (h5_int64_t, "file_name='%*s', fcomm=%d, flags=%s, align=%lld",
l_file_name, file_name, *fcomm, flags, (long long)align);
H5_API_RETURN (
open_file_par (
file_name, l_file_name,
fcomm,
H5_O_WRONLY,
flags, l_flags,
*align));
}
#define h5_opena_par_align F77_NAME( \
h5_opena_par_align, \
h5_opena_par_align_, \
H5_OPENA_PAR_ALIGN)
h5_int64_t
h5_opena_par_align (
const char *file_name,
MPI_Fint *fcomm,
const h5_int64_t *align,
const char *flags,
const int l_file_name,
const int l_flags
) {
H5_API_ENTER (h5_int64_t, "file_name='%*s', fcomm=%d, flags=%s, align=%lld",
l_file_name, file_name, *fcomm, flags, (long long)align);
H5_API_RETURN (
open_file_par (
file_name, l_file_name,
fcomm,
H5_O_APPEND,
flags, l_flags,
*align));
}
#endif
#define h5_close F77_NAME( \
h5_close, \
h5_close_, \
H5_CLOSE)
h5_int64_t
h5_close (
h5_closefile (
const h5_int64_t *f
) {
h5_file_t fh = h5_filehandlefor2c(f);
@@ -312,6 +127,45 @@ h5_close (
H5_API_RETURN (h5_close_file (fh));
}
#define h5_checkfile F77_NAME( \
h5_checkfile, \
h5_checkfile_, \
H5_CHECKFILE)
h5_int64_t
h5_checkfile (
const h5_int64_t *f
) {
h5_file_t fh = h5_filehandlefor2c(f);
H5_API_ENTER (h5_int64_t, "f=%p", (h5_file_p)fh);
H5_API_RETURN (h5_check_filehandle (fh));
}
#define h5_flushfile F77_NAME( \
h5_flushfile, \
h5_flushfile_, \
H5_FLUSHFILE)
h5_int64_t
h5_flushfile (
const h5_int64_t* f
) {
h5_file_t fh = h5_filehandlefor2c(f);
H5_API_ENTER (h5_int64_t, "f=%p", (h5_file_p)fh);
H5_API_RETURN (h5_flush_file (fh));
}
#define h5_flushstep F77_NAME( \
h5_flushstep, \
h5_flushstep_, \
H5_FLUSHSTEP)
h5_int64_t
h5_flushstep (
const h5_int64_t* f
) {
h5_file_t fh = h5_filehandlefor2c(f);
H5_API_ENTER (h5_int64_t, "f=%p", (h5_file_p)fh);
H5_API_RETURN (h5_flush_step (fh));
}
#define h5_finalize F77_NAME( \
h5_finalize, \
h5_finalize_, \
@@ -324,62 +178,6 @@ h5_finalize (
H5_API_RETURN (h5_close_hdf5());
}
#define h5_check F77_NAME( \
h5_check, \
h5_check_, \
H5_CHECK)
h5_int64_t
h5_check (
const h5_int64_t *f
) {
h5_file_t fh = h5_filehandlefor2c(f);
H5_API_ENTER (h5_int64_t, "f=%p", (h5_file_p)fh);
H5_API_RETURN (h5_check_filehandle (fh));
}
/* H5hut data model */
#define h5_setstep F77_NAME(  \
h5_setstep, \
h5_setstep_, \
H5_SETSTEP)
h5_int64_t
h5_setstep (
const h5_int64_t *f,
h5_int64_t *step ) {
h5_file_t fh = h5_filehandlefor2c(f);
H5_API_ENTER (h5_int64_t, "f=%p, step=%lld", (h5_file_p)fh, (long long)*step);
H5_API_RETURN (h5_set_step (fh, (*step)-1));
}
#define h5_getstep F77_NAME( \
h5_getstep, \
h5_getstep_, \
H5_GETSTEP)
h5_int64_t
h5_getstep (
const h5_int64_t *f
) {
h5_file_t fh = h5_filehandlefor2c(f);
H5_API_ENTER (h5_int64_t, "f=%p", (h5_file_p)fh);
H5_API_RETURN (h5_get_step (fh) + 1);
}
#define h5_getnsteps F77_NAME( \
h5_getnsteps, \
h5_getnsteps_, \
H5_GETNSTEPS)
h5_int64_t
h5_getnsteps (
const h5_int64_t *f
) {
h5_file_t fh = h5_filehandlefor2c(f);
H5_API_ENTER (h5_int64_t, "f=%p", (h5_file_p)fh);
H5_API_RETURN (h5_get_num_steps (fh));
}
/* debug output */
@@ -396,3 +194,17 @@ h5_set_verbosity_level (
H5_API_RETURN(h5_set_debuglevel (*level));
}
#define h5_abort_on_error F77_NAME( \
h5_abort_on_error, \
h5_abort_on_error_, \
H5_ABORT_ON_ERROR)
h5_int64_t
h5_abort_on_error (
void
) {
H5_API_ENTER (h5_int64_t, "%s", "");
h5_set_debuglevel (1);
H5_API_RETURN (h5_set_errorhandler (h5_abort_errorhandler));
}
+1 -1
View File
@@ -69,7 +69,7 @@ h5bl_getfieldattribinfo (
char *field_name2 = h5_strdupfor2c ( field_name, l_field_name );
h5_int64_t attrib_type;
h5_int64_t herr = h5b_get_field_attrib_info (
h5_int64_t herr = h5b_get_field_attrib_info_by_idx (
f,
field_name2, *attrib_idx - 1,
attrib_name, l_attrib_name,
+67 -7
View File
@@ -39,9 +39,9 @@ h5_getnfileattribs (
}
#define h5_getfileattribinfo F77_NAME( \
h5_getfileattribinfo, \
h5_getfileattribinfo_, \
H5_GETFILEATTRIBINFO)
h5_getfileattribinfo, \
h5_getfileattribinfo_, \
H5_GETFILEATTRIBINFO)
h5_int64_t
h5_getfileattribinfo (
const h5_int64_t* const fh,
@@ -61,7 +61,7 @@ h5_getfileattribinfo (
(h5_file_p)fh,
(long long)*attrib_idx,
attrib_name, attrib_type, attrib_nelem);
h5_int64_t h5err = h5_get_file_attrib_info (
h5_int64_t h5err = h5_get_file_attrib_info_by_idx (
f,
*attrib_idx - 1,
attrib_name, l_attrib_name,
@@ -72,6 +72,36 @@ h5_getfileattribinfo (
H5_API_RETURN (h5err);
}
#define h5_getfileattribinfo_by_name F77_NAME( \
h5_getfileattribinfo_by_name, \
h5_getfileattribinfo_by_name_, \
H5_GETFILEATTRIBINFO_BY_NAME)
h5_int64_t
h5_getfileattribinfo_by_name (
const h5_int64_t* const fh,
const char* const _name,
h5_int64_t* const _type,
h5_int64_t* const _nelem,
const int l_name
) {
h5_file_t f = h5_filehandlefor2c(fh);
H5_API_ENTER (h5_int64_t,
"fh=%p, "
"name=%.*s, "
"type=%p, "
"nelem=%p",
(h5_file_p)fh,
l_name, _name, _type, _nelem);
char* name = h5_strdupfor2c (_name, l_name);
h5_int64_t h5err = h5_get_file_attrib_info_by_name (
f,
name,
_type,
(h5_size_t*)_nelem);
convert_type2for (_type);
H5_API_RETURN (h5err);
}
/*
_ __
(_) / /__
@@ -309,8 +339,8 @@ h5_writefileattrib_i4 (
) {
h5_file_t f = h5_filehandlefor2c(fh);
H5_API_ENTER (h5_int64_t,
"fh=%p, name='%.*s', buffer=%p, nelem=%lld",
(h5_file_p)f, l_name, name, buffer, (long long)*nelem);
"fh=%p, name='%.*s', buffer[12]=%d, %x, %x, nelem=%lld",
(h5_file_p)f, l_name, name, buffer[12], buffer[13], buffer[14], (long long)*nelem);
H5_API_RETURN (write_file_attrib(
f,
name, l_name,
@@ -386,7 +416,7 @@ h5_getstepattribinfo (
(h5_file_p)f,
(long long)*attrib_idx,
attrib_name, attrib_type, attrib_nelem);
h5_int64_t h5err = h5_get_step_attrib_info (
h5_int64_t h5err = h5_get_step_attrib_info_by_idx (
f,
*attrib_idx - 1,
attrib_name, l_attrib_name,
@@ -397,6 +427,36 @@ h5_getstepattribinfo (
H5_API_RETURN (h5err);
}
#define h5_getstepattribinfo_by_name F77_NAME( \
h5_getstepattribinfo_by_name, \
h5_getstepattribinfo_by_name_, \
H5_GETSTEPATTRIBINFO_BY_NAME)
h5_int64_t
h5_getstepattribinfo_by_name (
const h5_int64_t* const fh,
const char* const _name,
h5_int64_t* const _type,
h5_int64_t* const _nelem,
const int l_name
) {
h5_file_t f = h5_filehandlefor2c(fh);
H5_API_ENTER (h5_int64_t,
"fh=%p, "
"name=%.*s, "
"type=%p, "
"nelem=%p",
(h5_file_p)fh,
l_name, _name, _type, _nelem);
char* name = h5_strdupfor2c (_name, l_name);
h5_int64_t h5err = h5_get_step_attrib_info_by_name (
f,
name,
_type,
(h5_size_t*)_nelem);
convert_type2for (_type);
H5_API_RETURN (h5err);
}
static inline h5_int64_t
write_step_attrib (
const h5_file_t fh,
+76
View File
@@ -0,0 +1,76 @@
/*
Copyright (c) 2006-2013, 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.h"
#include "h5core/h5_debug.h"
#include "h5core/h5_model.h"
/* H5hut data model */
#define h5_hasstep F77_NAME( \
h5_hasstep, \
h5_hasstep_, \
H5_HASSTEP)
int
h5_hasstep (
const h5_int64_t* f,
const h5_int64_t* stepno
) {
h5_file_t fh = h5_filehandlefor2c(f);
H5_API_ENTER (
int,
"f=%p, stepno=%lld",
(h5_file_p)fh, (long long int)stepno);
H5_API_RETURN (h5_has_step (fh, *stepno));
}
#define h5_setstep F77_NAME( \
h5_setstep, \
h5_setstep_, \
H5_SETSTEP)
h5_int64_t
h5_setstep (
const h5_int64_t *f,
h5_int64_t *step ) {
h5_file_t fh = h5_filehandlefor2c(f);
H5_API_ENTER (h5_int64_t, "f=%p, step=%lld", (h5_file_p)fh, (long long)*step);
H5_API_RETURN (h5_set_step (fh, *step));
}
#define h5_getstep F77_NAME( \
h5_getstep, \
h5_getstep_, \
H5_GETSTEP)
h5_int64_t
h5_getstep (
const h5_int64_t *f
) {
h5_file_t fh = h5_filehandlefor2c(f);
H5_API_ENTER (h5_int64_t, "f=%p", (h5_file_p)fh);
H5_API_RETURN (h5_get_step (fh) + 1);
}
#define h5_getnsteps F77_NAME( \
h5_getnsteps, \
h5_getnsteps_, \
H5_GETNSTEPS)
h5_int64_t
h5_getnsteps (
const h5_int64_t *f
) {
h5_file_t fh = h5_filehandlefor2c(f);
H5_API_ENTER (h5_int64_t, "f=%p", (h5_file_p)fh);
H5_API_RETURN (h5_get_num_steps (fh));
}
+22 -18
View File
@@ -2,15 +2,17 @@
if ENABLE_FORTRAN
AM_CPPFLAGS += -I$(top_srcdir)/src/include
F90_FILES = \
H5F.f90 \
H5_constF.f90 \
H5_attribsF.f90 \
H5PartF.f90 \
H5Part_ioF.f90 \
H5BlockF.f90 \
H5Block_attribsF.f90 \
H5Block_ioF.f90
F90_FILES = \
$(top_srcdir)/src/include/H5hut.f90 \
$(top_srcdir)/src/include/H5.f90 \
$(top_srcdir)/src/include/H5_const.f90 \
$(top_srcdir)/src/include/H5_attribs.f90 \
$(top_srcdir)/src/include/H5_model.f90 \
$(top_srcdir)/src/include/H5Part.f90 \
$(top_srcdir)/src/include/H5Part_io.f90 \
$(top_srcdir)/src/include/H5Block.f90 \
$(top_srcdir)/src/include/H5Block_attribs.f90 \
$(top_srcdir)/src/include/H5Block_io.f90
EXTRA_HEADERS =
@@ -20,16 +22,18 @@ EXTRA_DIST = \
$(F90_FILES)
nodist_include_HEADERS = \
$(top_srcdir)/src/include/H5hutF.h
$(top_srcdir)/src/include/H5hut.f
lib_LTLIBRARIES = libH5hutF.la
include_HEADERS = \
../include/H5hutF.h
$(F90_FILES) \
$(top_srcdir)/src/include/H5hut.f
libH5hutF_la_SOURCES = \
H5.c \
H5_attribs.c \
H5_model.c \
H5Part.c \
H5Part_io.c \
H5Block.c \
@@ -37,17 +41,17 @@ libH5hutF_la_SOURCES = \
H5Block_io.c
libH5hutF_la_DEPENDENCIES = \
$(top_srcdir)/src/include/H5hutF.h
$(top_srcdir)/src/include/H5hut.f
libH5hutF_la_LDFLAGS = -version-info 2:0:0 -rpath '$(libdir)'
$(top_srcdir)/src/include/H5hutF.h: $(F90_FILES)
awk '/INTEGER\*8 :: /{print "\t" $$0}' $^ >$@
awk '/PARAMETER /{print "\t" $$0}' $^ >> $@
awk '/INTEGER\*8 FUNCTION/{print "\t" $$1 " " $$3}' $^ >>$@
$(top_srcdir)/src/include/H5hut.f: $(F90_FILES)
awk '/INTEGER\*8 :: /{print " " $$0}' $^ >$@
awk '/PARAMETER /{print " " $$0}' $^ >> $@
awk '/INTEGER\*8 FUNCTION/{print " " $$1 " " $$3}' $^ >>$@
all-local: ../include/H5hutF.h
$(INSTALL) -m644 .libs/libH5hutF.a ../lib
all-local: $(top_srcdir)/src/include/H5hut.f
$(INSTALL) -m644 .libs/libH5hutF.a $(top_builddir)/src/lib
endif
clean: clean-am
+11
View File
@@ -80,4 +80,15 @@ h5_filehandlefor2c (
) {
return (h5_file_t)*ptr;
}
static inline
int strlenf (
const char* s,
int len
) {
if (len == 0) return 0;
while (s[--len] == ' ');
return ++len;
}
#endif
+125 -210
View File
@@ -1,215 +1,130 @@
! Declaration of subroutines for Fortran Bindings
!
! Copyright (c) 2006-2013, 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.
!
INTERFACE
!!!!!!!! File Opening and Closing !!!!!!!!
!>
!! \ingroup h5hut_file_f
!! Create file property. See \ref H5CreateProp
!! \return 0 on success or -2 on error
!<
INTEGER*8 FUNCTION h5_createprop_file ()
END FUNCTION h5_createprop_file
!>
!! \ingroup h5hut_file_f
!! Store MPI IO comminicator information in file property list. See \ref H5SetPropFileMPIO
!! \return 0 on success or -2 on error
!<
INTEGER*8 FUNCTION h5_setprop_filempio (prop, comm)
INTEGER*8, INTENT(IN) :: prop !< property
INTEGER, INTENT(IN) :: comm !< the MPI communicator used by the program
END FUNCTION h5_setprop_filempio
!>
!! \ingroup h5hut_file_f
!! Set alignment. See \ref H5SetPropFileAlign
!! \return 0 on success or -2 on error
!<
INTEGER*8 FUNCTION h5_setprop_filealign (prop, align)
INTEGER*8, INTENT(IN) :: prop !< property
INTEGER*8, INTENT(IN) :: align !< alignment
END FUNCTION h5_setprop_filealign
!>
!! \ingroup h5hut_file_f
!! Set throttle. See \ref H5SetPropFileThrottle
!! \return 0 on success or -2 on error
!<
INTEGER*8 FUNCTION h5_setprop_filethrottle (prop, throttle)
INTEGER*8, INTENT(IN) :: prop !< property
INTEGER*8, INTENT(IN) :: throttle !< throttle
END FUNCTION h5_setprop_filethrottle
!>
!! \ingroup h5hut_file_f
!! Close property. See \ref H5CloseProp
!! \return 0 on success or -2 on error
!<
INTEGER*8 FUNCTION h5_closeprop (prop)
INTEGER*8, INTENT(IN) :: prop !< property
END FUNCTION h5_closeprop
!>
!! \ingroup h5hut_file_f
!! Opens a file for reading. See \ref H5OpenFile
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_openfile (fname, mode, props)
CHARACTER(LEN=*), INTENT(IN) :: fname !< the filename to open for reading
INTEGER*8, INTENT(IN) :: mode !< file mode
INTEGER*8, INTENT(IN) :: props !< properties
END FUNCTION h5_openfile
!>
!! \ingroup h5hut_file_f
!! Closes a file. See \ref H5CloseFile
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5_closefile (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION h5_closefile
!>
!! \ingroup h5hut_file_f
!! Checks that a file is valid. See \ref H5CheckFile
!! \return H5_SUCCESS or H5_FAILURE
!<
INTEGER*8 FUNCTION h5_checkfile ( filehandle )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION h5_checkfile
!>
!! \ingroup h5hut_file_f
!! Flush file data to disk.
!! \return H5_SUCCESS or H5_FAILURE
!<
INTEGER*8 FUNCTION h5_flushfile (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION h5_flushfile
!>
!! \ingroup h5hut_file_f
!! Flush step data to disk.
!! \return H5_SUCCESS or H5_FAILURE
!<
INTEGER*8 FUNCTION h5_flushstep (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION h5_flushstep
!>
!! \ingroup h5hut_file_f
!! Close HDF5 library. See \ref H5Finalize
!! \return \c H5_SUCCESS or \c H5_FAILURE
!<
INTEGER*8 FUNCTION h5_finalize ()
END FUNCTION h5_finalize
!>
!! \ingroup h5hut_file_f
!! Opens a file for reading. See \ref H5OpenFile
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_openr ( filename )
CHARACTER(LEN=*), INTENT(IN) :: filename !< the filename to open for reading
END FUNCTION
!>
!! \ingroup h5hut_error_f
!! See \ref H5SetVerbosityLevel
!! \return 0 on success or error code
!<
SUBROUTINE h5_set_verbosity_level ( level )
INTEGER*8, INTENT(IN) :: level !< the level from 0 (no output) to 5 (most detailed)
END SUBROUTINE h5_set_verbosity_level
!>
!! \ingroup h5hut_file_f
!! Opens a file for writing in truncate mode. See \ref H5OpenFile
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_openw ( filename )
CHARACTER(LEN=*), INTENT(IN) :: filename !< the filename to open for writing
END FUNCTION
!>
!! \ingroup h5hut_file_f
!! Opens a file for writing in append mode. See \ref H5OpenFile
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_opena ( filename )
CHARACTER(LEN=*), INTENT(IN) :: filename !< the filename to open for appending
END FUNCTION
!>
!! \ingroup h5hut_file_f
!! Opens a parallel file for reading. See \ref H5OpenFile
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_openr_par ( filename, mpi_communicator )
CHARACTER(LEN=*), INTENT(IN) :: filename !< the filename to open for reading
INTEGER, INTENT(IN) :: mpi_communicator !< the MPI communicator used by the program
END FUNCTION
!>
!! \ingroup h5hut_file_f
!! Opens a parallel file for writing in truncate mode. See \ref H5OpenFile
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_openw_par ( filename, mpi_communicator )
CHARACTER(LEN=*), INTENT(IN) :: filename !< the filename to open for writing
INTEGER, INTENT(IN) :: mpi_communicator !< the MPI_Communicator used by the program
END FUNCTION
!>
!! \ingroup h5hut_file_f
!! Opens a parallel file for writing in append mode. See \ref H5OpenFile
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_opena_par ( filename, mpi_communicator )
CHARACTER(LEN=*), INTENT(IN) :: filename !< the filename to open for appending
INTEGER, INTENT(IN) :: mpi_communicator !< the MPI_Communicator used by the program
END FUNCTION
!>
!! \ingroup h5hut_file_f
!! Opens a file for reading and specifies an HDF5 alignment.
!! See \ref H5OpenFileAlign
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_openr_align ( filename, align )
CHARACTER(LEN=*), INTENT(IN) :: filename !< the filename to open for reading
INTEGER*8, INTENT(IN) :: align !< alignment value in bytes
END FUNCTION
!>
!! \ingroup h5hut_file_f
!! Opens a file for writing in truncate mode and specifies an HDF5 alignment.
!! See \ref H5OpenFileAlign
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_openw_align ( filename, align )
CHARACTER(LEN=*), INTENT(IN) :: filename !< the filename to open for writing
INTEGER*8, INTENT(IN) :: align !< alignment value in bytes
END FUNCTION
!>
!! \ingroup h5hut_file_f
!! Opens a file for writing in append mode and specifies an HDF5 alignment.
!! See \ref H5OpenFileAlign
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_opena_align ( filename, align )
CHARACTER(LEN=*), INTENT(IN) :: filename !< the filename to open for appending
INTEGER*8, INTENT(IN) :: align !< alignment value in bytes
END FUNCTION
!>
!! \ingroup h5hut_file_f
!! Opens a parallel file for reading and specifies an HDF5 alignment.
!! See \ref H5OpenFileAlign
!!
!! Flags are specified as a comma separated string that can include:
!!
!! - \c fs_lustre - enable optimizations for the Lustre file system
!! - \c vfd_mpiposix - use the HDF5 MPI-POSIX virtual file driver
!! - \c vfd_mpio_ind - use MPI-IO in indepedent mode
!!
!! See \ref H5OpenFileAlign
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_openr_par_align ( filename, mpi_communicator, align, flags )
CHARACTER(LEN=*), INTENT(IN) :: filename !< the filename to open for reading
INTEGER, INTENT(IN) :: mpi_communicator !< the MPI_Communicator used by the program
INTEGER*8, INTENT(IN) :: align !< alignment value in bytes
CHARACTER(LEN=*), INTENT(IN) :: flags !< additional flags
END FUNCTION
!>
!! \ingroup h5hut_file_f
!! Opens a parallel file for writing in truncate mode and specifies
!! an HDF5 alignment.
!!
!! Flags are specified as a comma separated string that can include:
!!
!! - \c fs_lustre - enable optimizations for the Lustre file system
!! - \c vfd_mpiposix - use the HDF5 MPI-POSIX virtual file driver
!! - \c vfd_mpio_ind - use MPI-IO in indepedent mode
!!
!! See \ref H5OpenFileAlign
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_openw_par_align ( filename, mpi_communicator, align, flags )
CHARACTER(LEN=*), INTENT(IN) :: filename !< the filename to open for writing
INTEGER, INTENT(IN) :: mpi_communicator !< the MPI_Communicator used by the program
INTEGER*8, INTENT(IN) :: align !< alignment value in bytes
CHARACTER(LEN=*), INTENT(IN) :: flags !< additional flags
END FUNCTION
!>
!! \ingroup h5hut_file_f
!! Opens a parallel file for writing in append mode and specifies
!! an HDF5 alignment.
!!
!! Flags are specified as a comma separated string that can include:
!!
!! - \c fs_lustre - enable optimizations for the Lustre file system
!! - \c vfd_mpiposix - use the HDF5 MPI-POSIX virtual file driver
!! - \c vfd_mpio_ind - use MPI-IO in indepedent mode
!!
!! See \ref H5OpenFileAlign
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_opena_par_align ( filename, mpi_communicator, align, flags )
CHARACTER(LEN=*), INTENT(IN) :: filename !< the filename to open for appending
INTEGER, INTENT(IN) :: mpi_communicator !< the MPI_Communicator used by the program
INTEGER*8, INTENT(IN) :: align !< alignment value in bytes
CHARACTER(LEN=*), INTENT(IN) :: flags !< additional flags
END FUNCTION
!>
!! \ingroup h5hut_file_f
!! Closes a file. See \ref H5CloseFile
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5_close ( filehandle )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION
!>
!! \ingroup h5hut_file_f
!! Close HDF5 library. See \ref H5Finalize
!! \return \c H5_SUCCESS or \c H5_FAILURE
INTEGER*8 FUNCTION h5_finalize ()
END FUNCTION
!>
!! \ingroup h5hut_file_f
!! Checks that a file is valid. See \ref H5CheckFile
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5_check ( filehandle )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION
!>
!! \ingroup h5hut_model_f
!! See \ref H5SetStep
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5_setstep (filehandle,step)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(IN) :: step !< a timestep value >= 1
END FUNCTION
!>
!! \ingroup h5hut_model_f
!! See \ref H5GetStep
!! \return the the current step or \c H5_FAILURE
INTEGER*8 FUNCTION h5_getstep (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION
!>
!! \ingroup h5hut_model_f
!! See \ref H5GetNumSteps
!! \return the number of steps or error code
INTEGER*8 FUNCTION h5_getnsteps (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION
!>
!! \ingroup h5hut_error_f
!! See \ref H5SetVerbosityLevel
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5_set_verbosity_level ( level )
INTEGER*8, INTENT(IN) :: level !< the level from 0 (no output) to 5 (most detailed)
END FUNCTION
!>
!! \ingroup h5hut_error_f
!! Abort program on error.
!! \return 0 on success or error code
!<
SUBROUTINE h5_abort_on_error ()
END SUBROUTINE h5_abort_on_error
END INTERFACE
+100 -91
View File
@@ -1,97 +1,106 @@
! _ _ _ _
! __| | __ _| |_ __ _ _ __ ___ ___ __| | ___| |
! / _` |/ _` | __/ _` | | '_ ` _ \ / _ \ / _` |/ _ \ |
! | (_| | (_| | || (_| | | | | | | | (_) | (_| | __/ |
! \__,_|\__,_|\__\__,_| |_| |_| |_|\___/ \__,_|\___|_|
!
! Copyright (c) 2006-2013, 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.
!
INTERFACE
! _ _ _ _
! __| | __ _| |_ __ _ _ __ ___ ___ __| | ___| |
! / _` |/ _` | __/ _` | | '_ ` _ \ / _ \ / _` |/ _ \ |
! | (_| | (_| | || (_| | | | | | | | (_) | (_| | __/ |
! \__,_|\__,_|\__\__,_| |_| |_| |_|\___/ \__,_|\___|_|
!>
!! \ingroup h5block_model_f
!! See \ref H5Block3dSetView
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_setview ( filehandle, i_start, i_end, j_start, j_end, k_start, k_end )
INTEGER*8, INTENT(IN) :: filehandle
INTEGER*8, INTENT(IN) :: i_start
INTEGER*8, INTENT(IN) :: i_end
INTEGER*8, INTENT(IN) :: j_start
INTEGER*8, INTENT(IN) :: j_end
INTEGER*8, INTENT(IN) :: k_start
INTEGER*8, INTENT(IN) :: k_end
END FUNCTION
!>
!! \ingroup h5block_model_f
!! See \ref H5Block3dSetView
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_setview ( filehandle, i_start, i_end, j_start, j_end, k_start, k_end )
INTEGER*8, INTENT(IN) :: filehandle
INTEGER*8, INTENT(IN) :: i_start
INTEGER*8, INTENT(IN) :: i_end
INTEGER*8, INTENT(IN) :: j_start
INTEGER*8, INTENT(IN) :: j_end
INTEGER*8, INTENT(IN) :: k_start
INTEGER*8, INTENT(IN) :: k_end
END FUNCTION h5bl_3d_setview
!>
!! \ingroup h5block_model_f
!! See \ref H5Block3dGetView
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_getview ( filehandle, i_start, i_end, j_start, j_end, k_start, k_end )
INTEGER*8, INTENT(IN) :: filehandle
INTEGER*8, INTENT(OUT) :: i_start
INTEGER*8, INTENT(OUT) :: i_end
INTEGER*8, INTENT(OUT) :: j_start
INTEGER*8, INTENT(OUT) :: j_end
INTEGER*8, INTENT(OUT) :: k_start
INTEGER*8, INTENT(OUT) :: k_end
END FUNCTION
!>
!! \ingroup h5block_model_f
!! See \ref H5Block3dGetReducedView
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_getreducedview ( filehandle, i_start, i_end, j_start, j_end, k_start, k_end )
INTEGER*8, INTENT(IN) :: filehandle
INTEGER*8, INTENT(OUT) :: i_start
INTEGER*8, INTENT(OUT) :: i_end
INTEGER*8, INTENT(OUT) :: j_start
INTEGER*8, INTENT(OUT) :: j_end
INTEGER*8, INTENT(OUT) :: k_start
INTEGER*8, INTENT(OUT) :: k_end
END FUNCTION
!>
!! \ingroup h5block_model_f
!! See \ref H5Block3dGetView
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_getview ( filehandle, i_start, i_end, j_start, j_end, k_start, k_end )
INTEGER*8, INTENT(IN) :: filehandle
INTEGER*8, INTENT(OUT) :: i_start
INTEGER*8, INTENT(OUT) :: i_end
INTEGER*8, INTENT(OUT) :: j_start
INTEGER*8, INTENT(OUT) :: j_end
INTEGER*8, INTENT(OUT) :: k_start
INTEGER*8, INTENT(OUT) :: k_end
END FUNCTION h5bl_3d_getview
!>
!! \ingroup h5block_model_f
!! See \ref H5Block3dHasView
!! \return rank of processor error code
!<
INTEGER*8 FUNCTION h5bl_3d_hasview ( filehandle )
INTEGER*8, INTENT(IN) :: filehandle
END FUNCTION
!>
!! \ingroup h5block_model_f
!! See \ref H5Block3dGetReducedView
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_getreducedview ( filehandle, i_start, i_end, j_start, j_end, k_start, k_end )
INTEGER*8, INTENT(IN) :: filehandle
INTEGER*8, INTENT(OUT) :: i_start
INTEGER*8, INTENT(OUT) :: i_end
INTEGER*8, INTENT(OUT) :: j_start
INTEGER*8, INTENT(OUT) :: j_end
INTEGER*8, INTENT(OUT) :: k_start
INTEGER*8, INTENT(OUT) :: k_end
END FUNCTION h5bl_3d_getreducedview
!>
!! \ingroup h5block_model_f
!! See \ref H5Block3dSetChunk
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_setchunk ( filehandle, i, j, k )
INTEGER*8, INTENT(IN) :: filehandle
INTEGER*8, INTENT(IN) :: i
INTEGER*8, INTENT(IN) :: j
INTEGER*8, INTENT(IN) :: k
END FUNCTION
!>
!! \ingroup h5block_model_f
!! See \ref H5BlockGetNumFields
!! \return number of fields or error code
!<
INTEGER*8 FUNCTION h5bl_getnumfields ( filehandle )
INTEGER*8, INTENT(IN) :: filehandle
END FUNCTION
!>
!! \ingroup h5block_model_f
!! See \ref H5BlockGetFieldInfo
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_getfieldinfo ( filehandle, idx, field_name, grid_rank, grid_dims, field_dims )
INTEGER*8, INTENT(IN) :: filehandle
INTEGER*8, INTENT(IN) :: idx
CHARACTER(LEN=*), INTENT(OUT) :: field_name
INTEGER*8, INTENT(OUT) :: grid_rank
INTEGER*8, INTENT(OUT) :: grid_dims(*)
INTEGER*8, INTENT(OUT) :: field_dims
INTEGER*8, INTENT(OUT) :: type
END FUNCTION
!>
!! \ingroup h5block_model_f
!! See \ref H5Block3dHasView
!! \return rank of processor error code
!<
INTEGER*8 FUNCTION h5bl_3d_hasview ( filehandle )
INTEGER*8, INTENT(IN) :: filehandle
END FUNCTION h5bl_3d_hasview
!>
!! \ingroup h5block_model_f
!! See \ref H5Block3dSetChunk
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_setchunk ( filehandle, i, j, k )
INTEGER*8, INTENT(IN) :: filehandle
INTEGER*8, INTENT(IN) :: i
INTEGER*8, INTENT(IN) :: j
INTEGER*8, INTENT(IN) :: k
END FUNCTION h5bl_3d_setchunk
!>
!! \ingroup h5block_model_f
!! See \ref H5BlockGetNumFields
!! \return number of fields or error code
!<
INTEGER*8 FUNCTION h5bl_getnumfields ( filehandle )
INTEGER*8, INTENT(IN) :: filehandle
END FUNCTION h5bl_getnumfields
!>
!! \ingroup h5block_model_f
!! See \ref H5BlockGetFieldInfo
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_getfieldinfo ( filehandle, idx, field_name, grid_rank, grid_dims, field_dims )
INTEGER*8, INTENT(IN) :: filehandle
INTEGER*8, INTENT(IN) :: idx
CHARACTER(LEN=*), INTENT(OUT) :: field_name
INTEGER*8, INTENT(OUT) :: grid_rank
INTEGER*8, INTENT(OUT) :: grid_dims(*)
INTEGER*8, INTENT(OUT) :: field_dims
END FUNCTION h5bl_getfieldinfo
END INTERFACE
+239 -229
View File
@@ -1,249 +1,259 @@
! __ _ _ _ _ _ _ _ _
! / _(_) ___| | __| | __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! | |_| |/ _ \ |/ _` | / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! | _| | __/ | (_| | | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |_| |_|\___|_|\__,_| \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
!
! __ _ _ _ ___ _ __ _ _
! / _` | | | |/ _ \ '__| | | |
! | (_| | |_| | __/ | | |_| |
! \__, |\__,_|\___|_| \__, |
! |_| |___/
! Copyright (c) 2006-2013, 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.
!
INTERFACE
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockGetNumFieldAttribs
!! \return number of attributes or error code
!<
INTEGER*8 FUNCTION h5bl_getnfieldattribs (filehandle, field_name)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
END FUNCTION
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockGetFieldAttribInfo
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_getfieldattribinfo (filehandle, field_name, idx, attrib_name, attrib_nelems)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
INTEGER*8,INTENT(IN) :: idx !< index of attribute being queried
CHARACTER(LEN=*), INTENT(OUT):: attrib_name !< name of attribute
INTEGER*8,INTENT(OUT):: attrib_nelems !< number of elements in the attrib array
END FUNCTION
! __ _ _ _ _ _ _ _ _
! / _(_) ___| | __| | __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! | |_| |/ _ \ |/ _` | / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! | _| | __/ | (_| | | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |_| |_|\___|_|\__,_| \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! _ __ _ _
! (_) / /__ ___| |_ _ __(_)_ __ __ _
! | | / / _ \ / __| __| '__| | '_ \ / _` |
! | |/ / (_) | \__ \ |_| | | | | | | (_| |
! |_/_/ \___/ |___/\__|_| |_|_| |_|\__, |
! |___/
!
! __ _ _ _ ___ _ __ _ _
! / _` | | | |/ _ \ '__| | | |
! | (_| | |_| | __/ | | |_| |
! \__, |\__,_|\___|_| \__, |
! |_| |___/
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockWriteFieldAttribString
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_writefieldattrib_string (filehandle, field_name, attrib_name, attrib_value, attrib_nelems)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute
CHARACTER(LEN=*), INTENT(IN) :: attrib_value!< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelems !< number of elements in data array
END FUNCTION
!>
!! \ingroup h5block_attrib_f
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_readfieldattrib_string (filehandle, field_name, attrib_name, attrib_value)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute
CHARACTER(LEN=*), INTENT(IN) :: attrib_value!< attribute data will be read into this array
END FUNCTION
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockGetNumFieldAttribs
!! \return number of attributes or error code
!<
INTEGER*8 FUNCTION h5bl_getnfieldattribs (filehandle, field_name)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
END FUNCTION h5bl_getnfieldattribs
! _ __ _
! (_) / /__ _ __ ___ __ _| |
! | | / / _ \ | '__/ _ \/ _` | |
! | |/ / (_) | | | | __/ (_| | |
! |_/_/ \___/ |_| \___|\__,_|_|
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockGetFieldAttribInfo
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_getfieldattribinfo (filehandle, field_name, idx, attrib_name, attrib_nelems)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
INTEGER*8,INTENT(IN) :: idx !< index of attribute being queried
CHARACTER(LEN=*), INTENT(OUT):: attrib_name !< name of attribute
INTEGER*8,INTENT(OUT):: attrib_nelems !< number of elements in the attrib array
END FUNCTION h5bl_getfieldattribinfo
!>
!! \ingroup h5block_attrib_f
!!
!! See \ref H5BlockWriteFieldAttribFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_writefieldattrib_r8 (filehandle, field_name, attrib_name, attrib_value, attrib_nelems)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
REAL*8, INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelems !< number of elements in data array
END FUNCTION
! _ __ _ _
! (_) / /__ ___| |_ _ __(_)_ __ __ _
! | | / / _ \ / __| __| '__| | '_ \ / _` |
! | |/ / (_) | \__ \ |_| | | | | | | (_| |
! |_/_/ \___/ |___/\__|_| |_|_| |_|\__, |
! |___/
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockReadFieldAttribFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_readfieldattrib_r8 ( filehandle, field_name, attrib_name, attrib_value )
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*8, INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockWriteFieldAttribString
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_writefieldattrib_string (filehandle, field_name, attrib_name, attrib_value, attrib_nelems)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute
CHARACTER(LEN=*), INTENT(IN) :: attrib_value!< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelems !< number of elements in data array
END FUNCTION h5bl_writefieldattrib_string
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockWriteFieldAttribFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_writefieldattrib_r4 (filehandle, field_name, attrib_name, attrib_value, attrib_nelems)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
REAL*4, INTENT(OUT):: attrib_value(*) !< attribute datato be written
INTEGER*8, INTENT(IN) :: attrib_nelems !< number of elements in data array
END FUNCTION
!>
!! \ingroup h5block_attrib_f
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_readfieldattrib_string (filehandle, field_name, attrib_name, attrib_value)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute
CHARACTER(LEN=*), INTENT(IN) :: attrib_value!< attribute data will be read into this array
END FUNCTION h5bl_readfieldattrib_string
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockReadFieldAttribFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_readfieldattrib_r4 (filehandle, field_name, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*4, INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION
! _ __ _
! (_) / /__ _ __ ___ __ _| |
! | | / / _ \ | '__/ _ \/ _` | |
! | |/ / (_) | | | | __/ (_| | |
! |_/_/ \___/ |_| \___|\__,_|_|
! _ __ _ _
! (_) / /__ (_)_ __ | |_ ___ __ _ ___ _ __
! | | / / _ \ | | '_ \| __/ _ \/ _` |/ _ \ '__|
! | |/ / (_) | | | | | | || __/ (_| | __/ |
! |_/_/ \___/ |_|_| |_|\__\___|\__, |\___|_|
! |___/
!>
!! \ingroup h5block_attrib_f
!!
!! See \ref H5BlockWriteFieldAttribFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_writefieldattrib_r8 (filehandle, field_name, attrib_name, attrib_value, attrib_nelems)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
REAL*8, INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelems !< number of elements in data array
END FUNCTION h5bl_writefieldattrib_r8
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockWriteFieldAttribInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_writefieldattrib_i8 (filehandle, field_name, attrib_name, attrib_value, attrib_nelems)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
INTEGER*8,INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelems !< number of elements in data array
END FUNCTION
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockReadFieldAttribFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_readfieldattrib_r8 ( filehandle, field_name, attrib_name, attrib_value )
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*8, INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION h5bl_readfieldattrib_r8
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockReadFieldAttribInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_readfieldattrib_i8 (filehandle, field_name, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
INTEGER*8,INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockWriteFieldAttribFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_writefieldattrib_r4 (filehandle, field_name, attrib_name, attrib_value, attrib_nelems)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
REAL*4, INTENT(OUT):: attrib_value(*) !< attribute datato be written
INTEGER*8, INTENT(IN) :: attrib_nelems !< number of elements in data array
END FUNCTION h5bl_writefieldattrib_r4
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockWriteFieldAttribInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_writefieldattrib_i4 (filehandle, field_name, attrib_name, attrib_value, attrib_nelems)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
INTEGER*4,INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelems !< number of elements in data array
END FUNCTION
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockReadFieldAttribFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_readfieldattrib_r4 (filehandle, field_name, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*4, INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION h5bl_readfieldattrib_r4
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockReadFieldAttribInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_readfieldattrib_i4 (filehandle, field_name, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
INTEGER*4,INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION
! _ __ _ _
! (_) / /__ (_)_ __ | |_ ___ __ _ ___ _ __
! | | / / _ \ | | '_ \| __/ _ \/ _` |/ _ \ '__|
! | |/ / (_) | | | | | | || __/ (_| | __/ |
! |_/_/ \___/ |_|_| |_|\__\___|\__, |\___|_|
! |___/
! __ _ _ _ _
! / _(_) ___| | __| | ___ _ __ __ _ ___(_)_ __ __ _
! | |_| |/ _ \ |/ _` | / __| '_ \ / _` |/ __| | '_ \ / _` |
! | _| | __/ | (_| | \__ \ |_) | (_| | (__| | | | | (_| |
! |_| |_|\___|_|\__,_| |___/ .__/ \__,_|\___|_|_| |_|\__, |
! |_| |___/
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockWriteFieldAttribInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_writefieldattrib_i8 (filehandle, field_name, attrib_name, attrib_value, attrib_nelems)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
INTEGER*8,INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelems !< number of elements in data array
END FUNCTION h5bl_writefieldattrib_i8
!>
!! \ingroup h5block_attrib_f
!! See \ref H5Block3dGetFieldSpacing
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_get_field_spacing (filehandle, name, x, y, z)
INTEGER*8, INTENT(IN) :: filehandle
CHARACTER(LEN=*), INTENT(IN) :: name
REAL*8, INTENT(OUT) :: x
REAL*8, INTENT(OUT) :: y
REAL*8, INTENT(OUT) :: z
END FUNCTION
!!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockReadFieldAttribInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_readfieldattrib_i8 (filehandle, field_name, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
INTEGER*8,INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION h5bl_readfieldattrib_i8
!>
!! \ingroup h5block_attrib_f
!! See \ref H5Block3dSetFieldSpacing
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_set_field_spacing (filehandle, name, x, y, z)
INTEGER*8, INTENT(IN) :: filehandle
CHARACTER(LEN=*), INTENT(IN) :: name
REAL*8, INTENT(IN) :: x
REAL*8, INTENT(IN) :: y
REAL*8, INTENT(IN) :: z
END FUNCTION
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockWriteFieldAttribInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_writefieldattrib_i4 (filehandle, field_name, attrib_name, attrib_value, attrib_nelems)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
INTEGER*4,INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelems !< number of elements in data array
END FUNCTION h5bl_writefieldattrib_i4
! __ _ _ _ _ _
! / _(_) ___| | __| | ___ _ __(_) __ _(_)_ __
! | |_| |/ _ \ |/ _` | / _ \| '__| |/ _` | | '_ \
! | _| | __/ | (_| | | (_) | | | | (_| | | | | |
! |_| |_|\___|_|\__,_| \___/|_| |_|\__, |_|_| |_|
! |___/
!>
!! \ingroup h5block_attrib_f
!! See \ref H5BlockReadFieldAttribInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_readfieldattrib_i4 (filehandle, field_name, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: field_name !< name of field
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
INTEGER*4,INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION h5bl_readfieldattrib_i4
!>
!! \ingroup h5block_attrib_f
!! See \ref H5Block3dGetFieldOrigin
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_get_field_origin (filehandle, name, x, y, z)
INTEGER*8, INTENT(IN) :: filehandle
CHARACTER(LEN=*), INTENT(IN) :: name
REAL*8, INTENT(OUT) :: x
REAL*8, INTENT(OUT) :: y
REAL*8, INTENT(OUT) :: z
END FUNCTION
!>
!! \ingroup h5block_attrib_f
!! See \ref H5Block3dSetFieldOrigin
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_set_field_origin (filehandle, name, x, y, z)
INTEGER*8, INTENT(IN) :: filehandle
CHARACTER(LEN=*), INTENT(IN) :: name
REAL*8, INTENT(IN) :: x
REAL*8, INTENT(IN) :: y
REAL*8, INTENT(IN) :: z
END FUNCTION
! __ _ _ _ _
! / _(_) ___| | __| | ___ _ __ __ _ ___(_)_ __ __ _
! | |_| |/ _ \ |/ _` | / __| '_ \ / _` |/ __| | '_ \ / _` |
! | _| | __/ | (_| | \__ \ |_) | (_| | (__| | | | | (_| |
! |_| |_|\___|_|\__,_| |___/ .__/ \__,_|\___|_|_| |_|\__, |
! |_| |___/
!> @}
!>
!! \ingroup h5block_attrib_f
!! See \ref H5Block3dGetFieldSpacing
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_get_field_spacing (filehandle, name, x, y, z)
INTEGER*8, INTENT(IN) :: filehandle
CHARACTER(LEN=*), INTENT(IN) :: name
REAL*8, INTENT(OUT) :: x
REAL*8, INTENT(OUT) :: y
REAL*8, INTENT(OUT) :: z
END FUNCTION h5bl_3d_get_field_spacing
!>
!! \ingroup h5block_attrib_f
!! See \ref H5Block3dSetFieldSpacing
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_set_field_spacing (filehandle, name, x, y, z)
INTEGER*8, INTENT(IN) :: filehandle
CHARACTER(LEN=*), INTENT(IN) :: name
REAL*8, INTENT(IN) :: x
REAL*8, INTENT(IN) :: y
REAL*8, INTENT(IN) :: z
END FUNCTION h5bl_3d_set_field_spacing
! __ _ _ _ _ _
! / _(_) ___| | __| | ___ _ __(_) __ _(_)_ __
! | |_| |/ _ \ |/ _` | / _ \| '__| |/ _` | | '_ \
! | _| | __/ | (_| | | (_) | | | | (_| | | | | |
! |_| |_|\___|_|\__,_| \___/|_| |_|\__, |_|_| |_|
! |___/
!>
!! \ingroup h5block_attrib_f
!! See \ref H5Block3dGetFieldOrigin
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_get_field_origin (filehandle, name, x, y, z)
INTEGER*8, INTENT(IN) :: filehandle
CHARACTER(LEN=*), INTENT(IN) :: name
REAL*8, INTENT(OUT) :: x
REAL*8, INTENT(OUT) :: y
REAL*8, INTENT(OUT) :: z
END FUNCTION h5bl_3d_get_field_origin
!>
!! \ingroup h5block_attrib_f
!! See \ref H5Block3dSetFieldOrigin
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_set_field_origin (filehandle, name, x, y, z)
INTEGER*8, INTENT(IN) :: filehandle
CHARACTER(LEN=*), INTENT(IN) :: name
REAL*8, INTENT(IN) :: x
REAL*8, INTENT(IN) :: y
REAL*8, INTENT(IN) :: z
END FUNCTION h5bl_3d_set_field_origin
!> @}
END INTERFACE
+178 -168
View File
@@ -1,181 +1,191 @@
!> \ingroup h5hut_f90_api
!! \addtogroup h5block_data_f
!! @{
!
! Copyright (c) 2006-2013, 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.
!
INTERFACE
!> \ingroup h5hut_f90_api
!! \addtogroup h5block_data_f
!! @{
!>
!! See \ref H5Block3dWriteScalarFieldFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_scalar_field_r8 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*8, INTENT(IN) :: buffer(*) !< the array of data
END FUNCTION
!>
!! See \ref H5Block3dWriteScalarFieldFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_scalar_field_r8 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*8, INTENT(IN) :: buffer(*) !< the array of data
END FUNCTION h5bl_3d_write_scalar_field_r8
!>
!! See \ref H5Block3dReadScalarFieldFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_scalar_field_r8 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*8, INTENT(OUT) :: buffer(*) !< buffer to read the data into
END FUNCTION
!>
!! See \ref H5Block3dWriteVector3dFieldFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_vector3d_field_r8 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*8, INTENT(IN) :: x(*) !< the array of x data to write
REAL*8, INTENT(IN) :: y(*) !< the array of y data to write
REAL*8, INTENT(IN) :: z(*) !< the array of z data to write
END FUNCTION
!>
!! See \ref H5Block3dReadScalarFieldFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_scalar_field_r8 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*8, INTENT(OUT) :: buffer(*) !< buffer to read the data into
END FUNCTION h5bl_3d_read_scalar_field_r8
!>
!! See \ref H5Block3dReadVector3dFieldFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_vector3d_field_r8 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*8, INTENT(OUT) :: x(*) !< buffer to read the x data into
REAL*8, INTENT(OUT) :: y(*) !< buffer to read the y data into
REAL*8, INTENT(OUT) :: z(*) !< buffer to read the z data into
END FUNCTION
!>
!! See \ref H5Block3dWriteVector3dFieldFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_vector3d_field_r8 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*8, INTENT(IN) :: x(*) !< the array of x data to write
REAL*8, INTENT(IN) :: y(*) !< the array of y data to write
REAL*8, INTENT(IN) :: z(*) !< the array of z data to write
END FUNCTION h5bl_3d_write_vector3d_field_r8
!>
!! See \ref H5Block3dWriteScalarFieldFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_scalar_field_r4 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*4, INTENT(IN) :: buffer(*) !< the array of data
END FUNCTION
!>
!! See \ref H5Block3dReadVector3dFieldFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_vector3d_field_r8 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*8, INTENT(OUT) :: x(*) !< buffer to read the x data into
REAL*8, INTENT(OUT) :: y(*) !< buffer to read the y data into
REAL*8, INTENT(OUT) :: z(*) !< buffer to read the z data into
END FUNCTION h5bl_3d_read_vector3d_field_r8
!>
!! See \ref H5Block3dReadScalarFieldFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_scalar_field_r4 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*4, INTENT(OUT) :: buffer(*) !< buffer to read the data into
END FUNCTION
!>
!! See \ref H5Block3dWriteVector3dFieldFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_vector3d_field_r4 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*4, INTENT(IN) :: x(*) !< the array of x data to write
REAL*4, INTENT(IN) :: y(*) !< the array of y data to write
REAL*4, INTENT(IN) :: z(*) !< the array of z data to write
END FUNCTION
!>
!! See \ref H5Block3dWriteScalarFieldFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_scalar_field_r4 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*4, INTENT(IN) :: buffer(*) !< the array of data
END FUNCTION h5bl_3d_write_scalar_field_r4
!>
!! See \ref H5Block3dReadVector3dFieldFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_vector3d_field_r4 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*4, INTENT(OUT) :: x(*) !< buffer to read the x data into
REAL*4, INTENT(OUT) :: y(*) !< buffer to read the y data into
REAL*4, INTENT(OUT) :: z(*) !< buffer to read the z data into
END FUNCTION
!>
!! See \ref H5Block3dReadScalarFieldFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_scalar_field_r4 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*4, INTENT(OUT) :: buffer(*) !< buffer to read the data into
END FUNCTION h5bl_3d_read_scalar_field_r4
!>
!! See \ref H5Block3dWriteScalarFieldInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_scalar_field_i8 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*8, INTENT(IN) :: buffer(*) !< the array of data
END FUNCTION
!>
!! See \ref H5Block3dWriteVector3dFieldFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_vector3d_field_r4 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*4, INTENT(IN) :: x(*) !< the array of x data to write
REAL*4, INTENT(IN) :: y(*) !< the array of y data to write
REAL*4, INTENT(IN) :: z(*) !< the array of z data to write
END FUNCTION h5bl_3d_write_vector3d_field_r4
!>
!! See \ref H5Block3dReadScalarFieldInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_scalar_field_i8 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*8, INTENT(OUT) :: buffer(*) !< buffer to read the data into
END FUNCTION
!>
!! See \ref H5Block3dWriteVector3dFieldInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_vector3d_field_i8 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*8, INTENT(IN) :: x(*) !< the array of x data to write
INTEGER*8, INTENT(IN) :: y(*) !< the array of y data to write
INTEGER*8, INTENT(IN) :: z(*) !< the array of z data to write
END FUNCTION
!>
!! See \ref H5Block3dReadVector3dFieldFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_vector3d_field_r4 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*4, INTENT(OUT) :: x(*) !< buffer to read the x data into
REAL*4, INTENT(OUT) :: y(*) !< buffer to read the y data into
REAL*4, INTENT(OUT) :: z(*) !< buffer to read the z data into
END FUNCTION h5bl_3d_read_vector3d_field_r4
!>
!! See \ref H5Block3dReadVector3dFieldInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_vector3d_field_i8 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*8, INTENT(OUT) :: x(*) !< buffer to read the x data into
INTEGER*8, INTENT(OUT) :: y(*) !< buffer to read the y data into
INTEGER*8, INTENT(OUT) :: z(*) !< buffer to read the z data into
END FUNCTION
!>
!! See \ref H5Block3dWriteScalarFieldInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_scalar_field_i8 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*8, INTENT(IN) :: buffer(*) !< the array of data
END FUNCTION h5bl_3d_write_scalar_field_i8
!>
!! See \ref H5Block3dWriteScalarFieldInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_scalar_field_i4 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*4, INTENT(IN) :: buffer(*) !< the array of data
END FUNCTION
!>
!! See \ref H5Block3dReadScalarFieldInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_scalar_field_i8 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*8, INTENT(OUT) :: buffer(*) !< buffer to read the data into
END FUNCTION h5bl_3d_read_scalar_field_i8
!>
!! See \ref H5Block3dReadScalarFieldInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_scalar_field_i4 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*4, INTENT(OUT) :: buffer(*) !< buffer to read the data into
END FUNCTION
!>
!! See \ref H5Block3dWriteVector3dFieldInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_vector3d_field_i4 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*4, INTENT(IN) :: x(*) !< the array of x data to write
INTEGER*4, INTENT(IN) :: y(*) !< the array of y data to write
INTEGER*4, INTENT(IN) :: z(*) !< the array of z data to write
END FUNCTION
!>
!! See \ref H5Block3dWriteVector3dFieldInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_vector3d_field_i8 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*8, INTENT(IN) :: x(*) !< the array of x data to write
INTEGER*8, INTENT(IN) :: y(*) !< the array of y data to write
INTEGER*8, INTENT(IN) :: z(*) !< the array of z data to write
END FUNCTION h5bl_3d_write_vector3d_field_i8
!>
!! See \ref H5Block3dReadVector3dFieldInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_vector3d_field_i4 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*4, INTENT(OUT) :: x(*) !< buffer to read the x data into
INTEGER*4, INTENT(OUT) :: y(*) !< buffer to read the y data into
INTEGER*4, INTENT(OUT) :: z(*) !< buffer to read the z data into
END FUNCTION
!>
!! See \ref H5Block3dReadVector3dFieldInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_vector3d_field_i8 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*8, INTENT(OUT) :: x(*) !< buffer to read the x data into
INTEGER*8, INTENT(OUT) :: y(*) !< buffer to read the y data into
INTEGER*8, INTENT(OUT) :: z(*) !< buffer to read the z data into
END FUNCTION h5bl_3d_read_vector3d_field_i8
!> @}
!>
!! See \ref H5Block3dWriteScalarFieldInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_scalar_field_i4 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*4, INTENT(IN) :: buffer(*) !< the array of data
END FUNCTION h5bl_3d_write_scalar_field_i4
!>
!! See \ref H5Block3dReadScalarFieldInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_scalar_field_i4 ( filehandle, name, buffer )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*4, INTENT(OUT) :: buffer(*) !< buffer to read the data into
END FUNCTION h5bl_3d_read_scalar_field_i4
!>
!! See \ref H5Block3dWriteVector3dFieldInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_write_vector3d_field_i4 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*4, INTENT(IN) :: x(*) !< the array of x data to write
INTEGER*4, INTENT(IN) :: y(*) !< the array of y data to write
INTEGER*4, INTENT(IN) :: z(*) !< the array of z data to write
END FUNCTION h5bl_3d_write_vector3d_field_i4
!>
!! See \ref H5Block3dReadVector3dFieldInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5bl_3d_read_vector3d_field_i4 ( filehandle, name, x, y, z )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned at file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*4, INTENT(OUT) :: x(*) !< buffer to read the x data into
INTEGER*4, INTENT(OUT) :: y(*) !< buffer to read the y data into
INTEGER*4, INTENT(OUT) :: z(*) !< buffer to read the z data into
END FUNCTION h5bl_3d_read_vector3d_field_i4
!> @}
END INTERFACE
+124 -116
View File
@@ -1,127 +1,135 @@
!!!!!!!! Setting up the Data Model !!!!!!!!
!
! Copyright (c) 2006-2013, 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.
!
INTERFACE
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartSetNumParticles
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_setnpoints ( filehandle, npoints )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(IN) :: npoints !< the number of particles on *this* processor
END FUNCTION h5pt_setnpoints
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartSetNumParticlesStrided
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_setnpoints_strided ( filehandle, npoints, stride )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(IN) :: npoints !< the number of particles on *this* processor
INTEGER*8, INTENT(IN) :: stride !< the stride value (e.g. the number of fields in the particle data array)
END FUNCTION h5pt_setnpoints_strided
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartSetNumParticles
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_setnpoints ( filehandle, npoints )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(IN) :: npoints !< the number of particles on *this* processor
END FUNCTION
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartGetNumDatasets
!! \return the number of datasets or error code
!<
INTEGER*8 FUNCTION h5pt_getndatasets (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION h5pt_getndatasets
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartSetNumParticlesStrided
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_setnpoints_strided ( filehandle, npoints, stride )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(IN) :: npoints !< the number of particles on *this* processor
INTEGER*8, INTENT(IN) :: stride !< the stride value (e.g. the number of fields in the particle data array)
END FUNCTION
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartGetNumParticles
!! \return the number of particles or error code
!<
INTEGER*8 FUNCTION h5pt_getnpoints (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION h5pt_getnpoints
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartGetNumDatasets
!! \return the number of datasets or error code
!<
INTEGER*8 FUNCTION h5pt_getndatasets (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartGetDatasetName
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_getdatasetname (filehandle,index,name)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(IN) :: index !< index of dataset to query (starting from 0)
CHARACTER(LEN=*), INTENT(OUT) :: name !< buffer to read the dataset name into
END FUNCTION h5pt_getdatasetname
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartGetNumParticles
!! \return the number of particles or error code
!<
INTEGER*8 FUNCTION h5pt_getnpoints (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartGetDatasetInfo
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_getdatasetinfo (filehandle, idx, name, type, num_elems)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
INTEGER*8,INTENT(IN) :: idx !< index of dataset being queried
CHARACTER(LEN=*), INTENT(OUT):: name !< name of datset
INTEGER*8,INTENT(OUT):: type !< type of datset
INTEGER*8,INTENT(OUT):: num_elems !< number of elements in the dataset
END FUNCTION h5pt_getdatasetinfo
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartGetDatasetName
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_getdatasetname (filehandle,index,name)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(IN) :: index !< index of dataset to query (starting from 0)
CHARACTER(LEN=*), INTENT(OUT) :: name !< buffer to read the dataset name into
END FUNCTION
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartSetView
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_setview (filehandle,start,end)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(IN) :: start !< offset of the first particle in the view
INTEGER*8, INTENT(IN) :: end !< offset of the last particle in the view (inclusive)
END FUNCTION h5pt_setview
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartGetDatasetInfo
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_getdatasetinfo (filehandle, idx, name, type, num_elems)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
INTEGER*8,INTENT(IN) :: idx !< index of dataset being queried
CHARACTER(LEN=*), INTENT(OUT):: name !< name of datset
INTEGER*8,INTENT(OUT):: type !< type of datset
INTEGER*8,INTENT(OUT):: num_elems !< number of elements in the dataset
END FUNCTION
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartSetViewIndices
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_setview_indices (filehandle,indices,nelem)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(IN) :: indices(*) !< list of indicies to select in this view
INTEGER*8, INTENT(IN) :: nelem !< number of particles in the list
END FUNCTION h5pt_setview_indices
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartSetView
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_setview (filehandle,start,end)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(IN) :: start !< offset of the first particle in the view
INTEGER*8, INTENT(IN) :: end !< offset of the last particle in the view (inclusive)
END FUNCTION
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartResetView
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_resetview (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION h5pt_resetview
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartSetViewIndices
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_setview_indices (filehandle,indices,nelem)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(IN) :: indices(*) !< list of indicies to select in this view
INTEGER*8, INTENT(IN) :: nelem !< number of particles in the list
END FUNCTION
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartResetView
!! \return 1 if true, 0 if false, or error code
!<
INTEGER*8 FUNCTION h5pt_hasview (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION h5pt_hasview
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartResetView
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_resetview (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartGetView
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_getview (filehandle,start,end)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(OUT) :: start !< buffer to store the offset of the first particle in the view
INTEGER*8, INTENT(OUT) :: end !< buffer to store the offset of the last particle in the view (inclusive)
END FUNCTION h5pt_getview
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartResetView
!! \return 1 if true, 0 if false, or error code
!<
INTEGER*8 FUNCTION h5pt_hasview (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION
!>
!! \ingroup h5part_model_f
!!
!! See \ref H5PartGetView
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_getview (filehandle,start,end)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(OUT) :: start !< buffer to store the offset of the first particle in the view
INTEGER*8, INTENT(OUT) :: end !< buffer to store the offset of the last particle in the view (inclusive)
END FUNCTION
END INTERFACE
+82 -74
View File
@@ -1,83 +1,91 @@
!!!!!!!! Reading and Writing Datasets !!!!!!!!
!
! Copyright (c) 2006-2013, 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.
!
INTERFACE
!>
!! \ingroup h5part_data_f
!! See \ref H5PartWriteDataFloat64
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_writedata_r8 ( filehandle, name, data )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*8, INTENT(IN) :: data(*) !< the array of float64 data to write
END FUNCTION h5pt_writedata_r8
!>
!! \ingroup h5part_data_f
!! See \ref H5PartWriteDataFloat64
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_writedata_r8 ( filehandle, name, data )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*8, INTENT(IN) :: data(*) !< the array of float64 data to write
END FUNCTION
!>
!! \ingroup h5part_data_f
!! See \ref H5PartWriteDataFloat32
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_writedata_r4 ( filehandle, name, data )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL, INTENT(IN) :: data(*) !< the array of float32 data to write
END FUNCTION h5pt_writedata_r4
!>
!! \ingroup h5part_data_f
!! See \ref H5PartWriteDataFloat32
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_writedata_r4 ( filehandle, name, data )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL, INTENT(IN) :: data(*) !< the array of float32 data to write
END FUNCTION
!>
!! \ingroup h5part_data_f
!! See \ref H5PartWriteDataInt64
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_writedata_i8 ( filehandle, name, data )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*8, INTENT(IN) :: data(*) !< the array of int64 data to write
END FUNCTION h5pt_writedata_i8
!>
!! \ingroup h5part_data_f
!! See \ref H5PartWriteDataInt64
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_writedata_i8 ( filehandle, name, data )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*8, INTENT(IN) :: data(*) !< the array of int64 data to write
END FUNCTION
!>
!! \ingroup h5part_data_f
!! See \ref H5PartWriteDataInt32
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_writedata_i4 ( filehandle, name, data )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER, INTENT(IN) :: data(*) !< the array of int32 data to write
END FUNCTION
!>
!! \ingroup h5part_data_f
!! See \ref H5PartWriteDataInt32
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_writedata_i4 ( filehandle, name, data )
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER, INTENT(IN) :: data(*) !< the array of int32 data to write
END FUNCTION h5pt_writedata_i4
!>
!! \ingroup h5part_data_f
!! See \ref H5PartReadDataFloat64
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_readdata_r8 (filehandle,name,data)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*8, INTENT(OUT) :: data(*) !< array to read float64 data into
END FUNCTION
!>
!! \ingroup h5part_data_f
!! See \ref H5PartReadDataFloat64
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_readdata_r8 (filehandle,name,data)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL*8, INTENT(OUT) :: data(*) !< array to read float64 data into
END FUNCTION h5pt_readdata_r8
!>
!! \ingroup h5part_data_f
!! See \ref H5PartReadDataFloat32
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_readdata_r4 (filehandle,name,data)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL, INTENT(OUT) :: data(*) !< array to read float32 data into
END FUNCTION
!>
!! \ingroup h5part_data_f
!! See \ref H5PartReadDataFloat32
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_readdata_r4 (filehandle,name,data)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
REAL, INTENT(OUT) :: data(*) !< array to read float32 data into
END FUNCTION h5pt_readdata_r4
!>
!! \ingroup h5part_data_f
!! See \ref H5PartReadDataInt64
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_readdata_i8 (filehandle,name,data)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*8, INTENT(OUT) :: data(*) !< array to read int64 data into
END FUNCTION
!>
!! \ingroup h5part_data_f
!! See \ref H5PartReadDataInt64
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_readdata_i8 (filehandle,name,data)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER*8, INTENT(OUT) :: data(*) !< array to read int64 data into
END FUNCTION h5pt_readdata_i8
!>
!! \ingroup h5part_data_f
!! See \ref H5PartReadDataInt32
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_readdata_i4 (filehandle,name,data)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER, INTENT(OUT) :: data(*) !< array to read int32 data into
END FUNCTION
!>
!! \ingroup h5part_data_f
!! See \ref H5PartReadDataInt32
!! \return 0 on success or error code
INTEGER*8 FUNCTION h5pt_readdata_i4 (filehandle,name,data)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
CHARACTER(LEN=*), INTENT(IN) :: name !< the name of the dataset
INTEGER, INTENT(OUT) :: data(*) !< array to read int32 data into
END FUNCTION h5pt_readdata_i4
END INTERFACE
+374 -339
View File
@@ -1,366 +1,401 @@
! __ _ _ _ _ _ _ _
! / _(_) | ___ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! | |_| | |/ _ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! | _| | | __/ | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |_| |_|_|\___| \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! __ _ _ _ ___ _ __ _ _
! / _` | | | |/ _ \ '__| | | |
! | (_| | |_| | __/ | | |_| |
! \__, |\__,_|\___|_| \__, |
! |_| |___/
!
! Copyright (c) 2006-2013, 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.
!
INTERFACE
! __ _ _ _ _ _ _ _
! / _(_) | ___ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! | |_| | |/ _ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! | _| | | __/ | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |_| |_|_|\___| \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! __ _ _ _ ___ _ __ _ _
! / _` | | | |/ _ \ '__| | | |
! | (_| | |_| | __/ | | |_| |
! \__, |\__,_|\___|_| \__, |
! |_| |___/
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5GetNumFileAttribs
!! \return number of attributes or error code
!<
INTEGER*8 FUNCTION h5_getnfileattribs (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
END FUNCTION h5_getnfileattribs
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5GetNumFileAttribs
!! \return number of attributes or error code
!<
INTEGER*8 FUNCTION h5_getnfileattribs (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5GetFileAttribInfo
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_getfileattribinfo (filehandle, idx, attrib_name, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
INTEGER*8,INTENT(IN) :: idx !< index of attribute being queried
CHARACTER(LEN=*), INTENT(OUT):: attrib_name !< name of attribute
INTEGER*8,INTENT(OUT):: attrib_type !< type of attribute
INTEGER*8,INTENT(OUT):: attrib_nelem !< number of elements in the attrib array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5GetFileAttribInfo
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_getfileattribinfo (fhandle, idx, name, type, nelem)
INTEGER*8,INTENT(IN) :: fhandle !< file handle
INTEGER*8,INTENT(IN) :: idx !< index of attribute being queried
CHARACTER(LEN=*), INTENT(OUT):: name !< name of attribute
INTEGER*8,INTENT(OUT):: type !< type of attribute
INTEGER*8,INTENT(OUT):: nelem !< number of elements in the attrib array
END FUNCTION h5_getfileattribinfo
! __ _ _ _ _ _ _ _
! / _(_) | ___ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! | |_| | |/ _ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! | _| | | __/ | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |_| |_|_|\___| \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! _ __ _ _
! (_) / /__ ___| |_ _ __(_)_ __ __ _
! | | / / _ \ / __| __| '__| | '_ \ / _` |
! | |/ / (_) | \__ \ |_| | | | | | | (_| |
! |_/_/ \___/ |___/\__|_| |_|_| |_|\__, |
! |___/
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5GetFileAttribInfoByName
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_getfileattribinfo_by_name (fhandle, name, type, nelem)
INTEGER*8,INTENT(IN) :: fhandle !< file handle
CHARACTER(LEN=*), INTENT(IN):: name !< name of attribute
INTEGER*8,INTENT(OUT):: type !< type of attribute
INTEGER*8,INTENT(OUT):: nelem !< number of elements in the attrib array
END FUNCTION h5_getfileattribinfo_by_name
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteFileAttribString
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writefileattrib_string (filehandle, attrib_name, attrib_value)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
CHARACTER(LEN=*), INTENT(IN) :: attrib_value!< attribute data to be written
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readfileattrib_string (filehandle, attrib_name, attrib_value)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of the attribute to read
CHARACTER(LEN=*), INTENT(IN) :: attrib_value!< attribute data will be read into this array
END FUNCTION
! __ _ _ _ _ _ _ _
! / _(_) | ___ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! | |_| | |/ _ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! | _| | | __/ | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |_| |_|_|\___| \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! _ __ _ _
! (_) / /__ ___| |_ _ __(_)_ __ __ _
! | | / / _ \ / __| __| '__| | '_ \ / _` |
! | |/ / (_) | \__ \ |_| | | | | | | (_| |
! |_/_/ \___/ |___/\__|_| |_|_| |_|\__, |
! |___/
! __ _ _ _ _ _ _ _
! / _(_) | ___ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! | |_| | |/ _ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! | _| | | __/ | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |_| |_|_|\___| \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! _ __ _
! (_) / /__ _ __ ___ __ _| |
! | | / / _ \ | '__/ _ \/ _` | |
! | |/ / (_) | | | | __/ (_| | |
! |_/_/ \___/ |_| \___|\__,_|_|
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteFileAttribString
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writefileattrib_string (filehandle, attrib_name, attrib_value)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
CHARACTER(LEN=*), INTENT(IN) :: attrib_value!< attribute data to be written
END FUNCTION h5_writefileattrib_string
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteFileAttribFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writefileattrib_r8 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*8, INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readfileattrib_string (filehandle, attrib_name, attrib_value)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of the attribute to read
CHARACTER(LEN=*), INTENT(IN) :: attrib_value!< attribute data will be read into this array
END FUNCTION h5_readfileattrib_string
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadFileAttribFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readfileattrib_r8 (filehandle, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*8, INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION
! __ _ _ _ _ _ _ _
! / _(_) | ___ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! | |_| | |/ _ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! | _| | | __/ | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |_| |_|_|\___| \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! _ __ _
! (_) / /__ _ __ ___ __ _| |
! | | / / _ \ | '__/ _ \/ _` | |
! | |/ / (_) | | | | __/ (_| | |
! |_/_/ \___/ |_| \___|\__,_|_|
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteFileAttribFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writefileattrib_r4 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*4, INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteFileAttribFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writefileattrib_r8 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*8, INTENT(IN):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION h5_writefileattrib_r8
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadFileAttribFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readfileattrib_r4 ( filehandle, attrib_name, attrib_value )
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*4, INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadFileAttribFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readfileattrib_r8 (filehandle, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*8, INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION h5_readfileattrib_r8
! __ _ _ _ _ _ _ _
! / _(_) | ___ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! | |_| | |/ _ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! | _| | | __/ | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |_| |_|_|\___| \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! _ __ _ _
! (_) / /__ (_)_ __ | |_ ___ __ _ ___ _ __
! | | / / _ \ | | '_ \| __/ _ \/ _` |/ _ \ '__|
! | |/ / (_) | | | | | | || __/ (_| | __/ |
! |_/_/ \___/ |_|_| |_|\__\___|\__, |\___|_|
! |___/
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteFileAttribFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writefileattrib_r4 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*4, INTENT(IN):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION h5_writefileattrib_r4
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteFileAttribInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writefileattrib_i8 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
INTEGER*8,INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadFileAttribFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readfileattrib_r4 ( filehandle, attrib_name, attrib_value )
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*4, INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION h5_readfileattrib_r4
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadFileAttribInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readfileattrib_i8 (filehandle, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
INTEGER*8,INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION
! __ _ _ _ _ _ _ _
! / _(_) | ___ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! | |_| | |/ _ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! | _| | | __/ | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |_| |_|_|\___| \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! _ __ _ _
! (_) / /__ (_)_ __ | |_ ___ __ _ ___ _ __
! | | / / _ \ | | '_ \| __/ _ \/ _` |/ _ \ '__|
! | |/ / (_) | | | | | | || __/ (_| | __/ |
! |_/_/ \___/ |_|_| |_|\__\___|\__, |\___|_|
! |___/
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteFileAttribInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writefileattrib_i4 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
INTEGER*8,INTENT(OUT):: attrib_type !< type of attribute
INTEGER*4,INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteFileAttribInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writefileattrib_i8 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER (LEN=*), INTENT(IN) :: attrib_name!< name of attribute to write
INTEGER*8, INTENT(IN):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION h5_writefileattrib_i8
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadFileAttribInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readfileattrib_i4 (filehandle, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
INTEGER*4,INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadFileAttribInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readfileattrib_i8 (filehandle, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
INTEGER*8,INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION h5_readfileattrib_i8
! _ _ _ _ _ _
! ___| |_ ___ _ __ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! / __| __/ _ \ '_ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! \__ \ || __/ |_) | | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |___/\__\___| .__/ \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! |_|
! __ _ _ _ ___ _ __ _ _
! / _` | | | |/ _ \ '__| | | |
! | (_| | |_| | __/ | | |_| |
! \__, |\__,_|\___|_| \__, |
! |_| |___/
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteFileAttribInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writefileattrib_i4 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER (LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
INTEGER*4, INTENT(IN) :: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION h5_writefileattrib_i4
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5GetNumFileAttribs
!! \return number of attributes or error code
!<
INTEGER*8 FUNCTION h5_getnstepattribs (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5GetFileAttribInfo
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_getstepattribinfo (filehandle, idx, attrib_name, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
INTEGER*8,INTENT(IN) :: idx !< index of attribute being queried
CHARACTER(LEN=*), INTENT(OUT):: attrib_name !< name of attribute
INTEGER*8,INTENT(OUT):: attrib_nelem !< number of elements in the attrib array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadFileAttribInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readfileattrib_i4 (filehandle, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
INTEGER*4,INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION h5_readfileattrib_i4
! _ _ _ _ _ _
! ___| |_ ___ _ __ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! / __| __/ _ \ '_ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! \__ \ || __/ |_) | | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |___/\__\___| .__/ \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! |_|
! _ __ _ _
! (_) / /__ ___| |_ _ __(_)_ __ __ _
! | | / / _ \ / __| __| '__| | '_ \ / _` |
! | |/ / (_) | \__ \ |_| | | | | | | (_| |
! |_/_/ \___/ |___/\__|_| |_|_| |_|\__, |
! |___/
! _ _ _ _ _ _
! ___| |_ ___ _ __ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! / __| __/ _ \ '_ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! \__ \ || __/ |_) | | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |___/\__\___| .__/ \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! |_|
! __ _ _ _ ___ _ __ _ _
! / _` | | | |/ _ \ '__| | | |
! | (_| | |_| | __/ | | |_| |
! \__, |\__,_|\___|_| \__, |
! |_| |___/
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteStepAttribString
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writestepattrib_string (filehandle, attrib_name, attrib_value)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
CHARACTER(LEN=*), INTENT(IN) :: attrib_value!< attribute data to be written
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadStepAttribString
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readstepattrib_string (filehandle, attrib_name, attrib_value)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of the attribute to read
CHARACTER(LEN=*), INTENT(IN) :: attrib_value!< attribute data will be read into this array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5GetNumFileAttribs
!! \return number of attributes or error code
!<
INTEGER*8 FUNCTION h5_getnstepattribs (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
END FUNCTION h5_getnstepattribs
! _ _ _ _ _ _
! ___| |_ ___ _ __ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! / __| __/ _ \ '_ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! \__ \ || __/ |_) | | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |___/\__\___| .__/ \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! |_|
! _ __ _
! (_) / /__ _ __ ___ __ _| |
! | | / / _ \ | '__/ _ \/ _` | |
! | |/ / (_) | | | | __/ (_| | |
! |_/_/ \___/ |_| \___|\__,_|_|
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5GetFileAttribInfo
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_getstepattribinfo (filehandle, idx, name, type, nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
INTEGER*8,INTENT(IN) :: idx !< index of attribute being queried
CHARACTER(LEN=*), INTENT(OUT):: name !< name of attribute
INTEGER*8,INTENT(OUT):: type !< type of attribute
INTEGER*8,INTENT(OUT):: nelem !< number of elements in the attrib array
END FUNCTION h5_getstepattribinfo
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteStepAttribFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writestepattrib_r8 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*8, INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5GetStepAttribInfoByName
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_getstepattribinfo_by_name (fhandle, name, type, nelem)
INTEGER*8,INTENT(IN) :: fhandle !< file handle
CHARACTER(LEN=*), INTENT(IN):: name !< name of attribute
INTEGER*8,INTENT(OUT):: type !< type of attribute
INTEGER*8,INTENT(OUT):: nelem !< number of elements in the attrib array
END FUNCTION h5_getstepattribinfo_by_name
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadStepAttribFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readstepattrib_r8 (filehandle, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*8, INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION
! _ _ _ _ _ _
! ___| |_ ___ _ __ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! / __| __/ _ \ '_ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! \__ \ || __/ |_) | | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |___/\__\___| .__/ \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! |_|
! _ __ _ _
! (_) / /__ ___| |_ _ __(_)_ __ __ _
! | | / / _ \ / __| __| '__| | '_ \ / _` |
! | |/ / (_) | \__ \ |_| | | | | | | (_| |
! |_/_/ \___/ |___/\__|_| |_|_| |_|\__, |
! |___/
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteStepAttribFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writestepattrib_r4 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*4, INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteStepAttribString
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writestepattrib_string (filehandle, attrib_name, attrib_value)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
CHARACTER(LEN=*), INTENT(IN) :: attrib_value!< attribute data to be written
END FUNCTION h5_writestepattrib_string
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadStepAttribFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readstepattrib_r4 ( filehandle, attrib_name, attrib_value )
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*4, INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadStepAttribString
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readstepattrib_string (filehandle, attrib_name, attrib_value)
INTEGER*8, INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of the attribute to read
CHARACTER(LEN=*), INTENT(IN) :: attrib_value!< attribute data will be read into this array
END FUNCTION h5_readstepattrib_string
! _ _ _ _ _ _
! ___| |_ ___ _ __ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! / __| __/ _ \ '_ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! \__ \ || __/ |_) | | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |___/\__\___| .__/ \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! |_|
! _ __ _ _
! (_) / /__ (_)_ __ | |_ ___ __ _ ___ _ __
! | | / / _ \ | | '_ \| __/ _ \/ _` |/ _ \ '__|
! | |/ / (_) | | | | | | || __/ (_| | __/ |
! |_/_/ \___/ |_|_| |_|\__\___|\__, |\___|_|
! |___/
! _ _ _ _ _ _
! ___| |_ ___ _ __ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! / __| __/ _ \ '_ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! \__ \ || __/ |_) | | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |___/\__\___| .__/ \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! |_|
! _ __ _
! (_) / /__ _ __ ___ __ _| |
! | | / / _ \ | '__/ _ \/ _` | |
! | |/ / (_) | | | | __/ (_| | |
! |_/_/ \___/ |_| \___|\__,_|_|
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteStepAttribInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writestepattrib_i8 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
INTEGER*8,INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteStepAttribFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writestepattrib_r8 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*8, INTENT(IN):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION h5_writestepattrib_r8
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadStepAttribInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readstepattrib_i8 (filehandle, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
INTEGER*8,INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadStepAttribFloat64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readstepattrib_r8 (filehandle, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*8, INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION h5_readstepattrib_r8
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteStepAttribInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writestepattrib_i4 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
INTEGER*4,INTENT(OUT):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteStepAttribFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writestepattrib_r4 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*4, INTENT(IN):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION h5_writestepattrib_r4
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadStepAttribInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readstepattrib_i4 (filehandle, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
INTEGER*4,INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadStepAttribFloat32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readstepattrib_r4 ( filehandle, attrib_name, attrib_value )
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
REAL*4, INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION h5_readstepattrib_r4
! _ _ _ _ _ _
! ___| |_ ___ _ __ __ _| |_| |_ _ __(_) |__ _ _| |_ ___ ___
! / __| __/ _ \ '_ \ / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|
! \__ \ || __/ |_) | | (_| | |_| |_| | | | |_) | |_| | || __/\__ \
! |___/\__\___| .__/ \__,_|\__|\__|_| |_|_.__/ \__,_|\__\___||___/
! |_|
! _ __ _ _
! (_) / /__ (_)_ __ | |_ ___ __ _ ___ _ __
! | | / / _ \ | | '_ \| __/ _ \/ _` |/ _ \ '__|
! | |/ / (_) | | | | | | || __/ (_| | __/ |
! |_/_/ \___/ |_|_| |_|\__\___|\__, |\___|_|
! |___/
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteStepAttribInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writestepattrib_i8 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
INTEGER*8,INTENT(IN):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION h5_writestepattrib_i8
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadStepAttribInt64
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readstepattrib_i8 (filehandle, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
INTEGER*8,INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION h5_readstepattrib_i8
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5WriteStepAttribInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_writestepattrib_i4 (filehandle, attrib_name, attrib_value, attrib_nelem)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to write
INTEGER*4,INTENT(IN):: attrib_value(*) !< attribute data to be written
INTEGER*8, INTENT(IN) :: attrib_nelem !< number of elements in data array
END FUNCTION h5_writestepattrib_i4
!>
!! \ingroup h5hut_attrib_f
!! See \ref H5ReadStepAttribInt32
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_readstepattrib_i4 (filehandle, attrib_name, attrib_value)
INTEGER*8,INTENT(IN) :: filehandle !< file handle
CHARACTER(LEN=*), INTENT(IN) :: attrib_name !< name of attribute to read
INTEGER*4,INTENT(OUT):: attrib_value(*) !< attribute data will be read into this array
END FUNCTION h5_readstepattrib_i4
END INTERFACE
+43 -55
View File
@@ -1,61 +1,49 @@
!
! Copyright (c) 2006-2013, 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.
!
INTEGER*8, PARAMETER :: H5_O_RDWR = Z'00000001'
INTEGER*8, PARAMETER :: H5_O_RDONLY = Z'00000002'
INTEGER*8, PARAMETER :: H5_O_WRONLY = Z'00000004'
INTEGER*8, PARAMETER :: H5_O_APPEND = Z'00000008'
INTEGER*8 :: H5_STRING_T
INTEGER*8 :: H5_INT16_T
INTEGER*8 :: H5_INT32_T
INTEGER*8 :: H5_INT64_t
INTEGER*8 :: H5_FLOAT32_T
INTEGER*8 :: H5_FLOAT64_T
INTEGER*8, PARAMETER :: H5_VFD_MPIPOSIX = Z'00000010'
INTEGER*8, PARAMETER :: H5_VFD_MPIIO_IND = Z'00000020'
INTEGER*8, PARAMETER :: H5_VFD_CORE = Z'00000040'
PARAMETER (H5_STRING_T = 1)
PARAMETER (H5_INT16_T = 2)
PARAMETER (H5_INT32_T = 3)
PARAMETER (H5_INT64_T = 4)
PARAMETER (H5_FLOAT32_T = 5)
PARAMETER (H5_FLOAT64_T = 6)
INTEGER*8, PARAMETER :: H5_PROP_DEFAULT = 0
INTEGER*8 :: H5_MAX_NAME_LEN
PARAMETER (H5_MAX_NAME_LEN = 64)
INTEGER*8, PARAMETER :: H5_STRING_T = 1
INTEGER*8, PARAMETER :: H5_INT16_T = 2
INTEGER*8, PARAMETER :: H5_INT32_T = 3
INTEGER*8, PARAMETER :: H5_INT64_T = 4
INTEGER*8, PARAMETER :: H5_FLOAT32_T = 5
INTEGER*8, PARAMETER :: H5_FLOAT64_T = 6
INTEGER*8 :: H5_SUCCESS
INTEGER*8 :: H5_OK
INTEGER*8 :: H5_NOK
INTEGER*8 :: H5_FAILURE
INTEGER*8 :: H5_ERR_BADF
INTEGER*8 :: H5_ERR_NOMEM
INTEGER*8 :: H5_ERR_INVAL
INTEGER*8 :: H5_ERR_BADFD
INTEGER*8, PARAMETER :: H5_MAX_NAME_LEN = 64
INTEGER*8 :: H5_ERR_LAYOUT
INTEGER*8 :: H5_ERR_NOENTRY
INTEGER*8, PARAMETER :: H5_SUCCESS = 0
INTEGER*8, PARAMETER :: H5_OK = H5_SUCCESS
INTEGER*8, PARAMETER :: H5_NOK = -1
INTEGER*8, PARAMETER :: H5_FAILURE = -2
INTEGER*8, PARAMETER :: H5_ERR_BADF = -9
INTEGER*8, PARAMETER :: H5_ERR_NOMEM = -12
INTEGER*8, PARAMETER :: H5_ERR_INVAL = -22
INTEGER*8, PARAMETER :: H5_ERR_BADFD = -77
INTEGER*8, PARAMETER :: H5_ERR_LAYOUT = -100
INTEGER*8, PARAMETER :: H5_ERR_NOENTRY = -101
INTEGER*8 :: H5_ERR_MPI
INTEGER*8 :: H5_ERR_HDF5
INTEGER*8 :: H5_ERR_H5
INTEGER*8 :: H5_ERR_H5PART
INTEGER*8 :: H5_ERR_H5BLOCK
INTEGER*8 :: H5_ERR_H5FED
INTEGER*8 :: H5_ERR_INTERNAL
INTEGER*8 :: H5_ERR_NOT_IMPLEMENTED
PARAMETER (H5_SUCCESS = 0)
PARAMETER (H5_OK = H5_SUCCESS)
PARAMETER (H5_NOK = -1)
PARAMETER (H5_FAILURE = -2)
PARAMETER (H5_ERR_BADF = -9)
PARAMETER (H5_ERR_NOMEM = -12)
PARAMETER (H5_ERR_INVAL = -22)
PARAMETER (H5_ERR_BADFD = -77)
PARAMETER (H5_ERR_LAYOUT = -100)
PARAMETER (H5_ERR_NOENTRY = -101)
PARAMETER (H5_ERR_MPI = -201)
PARAMETER (H5_ERR_HDF5 = -202)
PARAMETER (H5_ERR_H5 = -203)
PARAMETER (H5_ERR_H5PART = -204)
PARAMETER (H5_ERR_H5BLOCK = -205)
PARAMETER (H5_ERR_H5FED = -206)
PARAMETER (H5_ERR_INTERNAL = -253)
PARAMETER (H5_ERR_NOT_IMPLEMENTED = -254)
INTEGER*8, PARAMETER :: H5_ERR_MPI = -201
INTEGER*8, PARAMETER :: H5_ERR_HDF5 = -202
INTEGER*8, PARAMETER :: H5_ERR_H5 = -203
INTEGER*8, PARAMETER :: H5_ERR_H5PART = -204
INTEGER*8, PARAMETER :: H5_ERR_H5BLOCK = -205
INTEGER*8, PARAMETER :: H5_ERR_H5FED = -206
INTEGER*8, PARAMETER :: H5_ERR_INTERNAL = -253
INTEGER*8, PARAMETER :: H5_ERR_NOT_IMPLEMENTED = -254
+39
View File
@@ -0,0 +1,39 @@
INTERFACE
!>
!! \ingroup h5hut_model_f
!! See \ref H5HasStep
!! \return 0 on success or H5_FAILURE
!<
LOGICAL FUNCTION h5_hasstep (filehandle,step)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(IN) :: step !< a timestep value >= 1
END FUNCTION h5_hasstep
!>
!! \ingroup h5hut_model_f
!! See \ref H5SetStep
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5_setstep (filehandle,step)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
INTEGER*8, INTENT(IN) :: step !< a timestep value >= 1
END FUNCTION h5_setstep
!>
!! \ingroup h5hut_model_f
!! See \ref H5GetStep
!! \return the the current step or \c H5_FAILURE
!<
INTEGER*8 FUNCTION h5_getstep (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION h5_getstep
!>
!! \ingroup h5hut_model_f
!! See \ref H5GetNumSteps
!! \return the number of steps or error code
!<
INTEGER*8 FUNCTION h5_getnsteps (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION h5_getnsteps
END INTERFACE
+22
View File
@@ -0,0 +1,22 @@
!
! Copyright (c) 2006-2013, 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.
!
MODULE H5hut
include 'H5_const.f90'
include 'H5.f90'
include 'H5_attribs.f90'
include 'H5_model.f90'
include 'H5Part.f90'
include 'H5Part_io.f90'
include 'H5Block.f90'
include 'H5Block_attribs.f90'
include 'H5Block_io.f90'
END MODULE H5hut