From 13d7784c44477e16dfba4730d4cc73174a07521c Mon Sep 17 00:00:00 2001 From: Marc Howison Date: Thu, 2 Jul 2009 18:22:30 +0000 Subject: [PATCH] added file open flags for Fortran interface --- configure.ac | 15 ++ src/H5Part.c | 10 +- src/H5Part.h | 8 +- src/H5PartF.c | 47 ++++- src/H5PartF90.inc | 466 +++++++++++++++++++++++----------------------- 5 files changed, 297 insertions(+), 249 deletions(-) diff --git a/configure.ac b/configure.ac index 4e12f49..b2e3926 100644 --- a/configure.ac +++ b/configure.ac @@ -18,6 +18,12 @@ AC_CONFIG_HEADER(config.h) ################# --enable-xxx and --with-xxx Argument ######################## ############################################################################### +AC_ARG_ENABLE( + [debug], + [AC_HELP_STRING([--enable-debug], + [Compile with debug support [default=no]])], + [USE_DEBUG=$enableval]) + AC_ARG_ENABLE( [64], [AC_HELP_STRING([--enable-64], @@ -212,6 +218,15 @@ AC_DEFINE_UNQUOTED(MY_UNAME, "$uname", "") ######################## CONFIGURE LINE OPTIONS ############################### ############################################################################### +AC_MSG_CHECKING([if debug is enabled]) + +if test "X$USE_DEBUG" = "Xyes"; then + AC_MSG_RESULT([yes]) + CFLAGS="$CFLAGS -g" +else + AC_MSG_RESULT([no]) +fi + ###################### 64-bit compilation enabled ############################# AC_MSG_CHECKING([if 64-bit compilation is enabled]) diff --git a/src/H5Part.c b/src/H5Part.c index fea74f9..2a4d8ae 100644 --- a/src/H5Part.c +++ b/src/H5Part.c @@ -130,7 +130,7 @@ _h5_error_handler ( static H5PartFile* _H5Part_open_file ( const char *filename, /*!< [in] The name of the data file to open. */ - unsigned flags, /*!< [in] The access mode for the file. */ + const char flags, /*!< [in] The access mode for the file. */ MPI_Comm comm, /*!< [in] MPI communicator */ int f_parallel, /*!< [in] 0 for serial io otherwise parallel */ h5part_int64_t align /*!< [in] Number of bytes for setting alignment, @@ -376,7 +376,7 @@ _H5Part_open_file ( H5PartFile* H5PartOpenFileParallel ( const char *filename, /*!< [in] The name of the data file to open. */ - unsigned flags, /*!< [in] The access mode for the file. */ + const char flags, /*!< [in] The access mode for the file. */ MPI_Comm comm /*!< [in] MPI communicator */ ) { @@ -399,7 +399,7 @@ H5PartOpenFileParallel ( H5PartFile* H5PartOpenFileParallelAlign ( const char *filename, /*!< [in] The name of the data file to open. */ - unsigned flags, /*!< [in] The access mode for the file. */ + const char flags, /*!< [in] The access mode for the file. */ MPI_Comm comm, /*!< [in] MPI communicator */ h5part_int64_t align /*!< [in] Alignment size in bytes. */ ) { @@ -436,7 +436,7 @@ H5PartOpenFileParallelAlign ( H5PartFile* H5PartOpenFile ( const char *filename, /*!< [in] The name of the data file to open. */ - unsigned flags /*!< [in] The access mode for the file. */ + const char flags /*!< [in] The access mode for the file. */ ) { SET_FNAME ( "H5PartOpenFile" ); @@ -459,7 +459,7 @@ H5PartOpenFile ( H5PartFile* H5PartOpenFileAlign ( const char *filename, /*!< [in] The name of the data file to open. */ - unsigned flags, /*!< [in] The access mode for the file. */ + const char flags, /*!< [in] The access mode for the file. */ h5part_int64_t align /*!< [in] Alignment size in bytes. */ ) { SET_FNAME ( "H5PartOpenFile" ); diff --git a/src/H5Part.h b/src/H5Part.h index 0f11b91..1a935d9 100644 --- a/src/H5Part.h +++ b/src/H5Part.h @@ -57,13 +57,13 @@ extern "C" { H5PartFile* H5PartOpenFile( const char *filename, - const unsigned flags + const char flags ); H5PartFile* H5PartOpenFileAlign( const char *filename, - const unsigned flags, + const char flags, h5part_int64_t align ); @@ -74,14 +74,14 @@ H5PartOpenFileAlign( H5PartFile* H5PartOpenFileParallel ( const char *filename, - const unsigned flags, + const char flags, MPI_Comm communicator ); H5PartFile* H5PartOpenFileParallelAlign ( const char *filename, - const unsigned flags, + const char flags, MPI_Comm communicator, h5part_int64_t align ); diff --git a/src/H5PartF.c b/src/H5PartF.c index 3071755..0a0f0db 100755 --- a/src/H5PartF.c +++ b/src/H5PartF.c @@ -213,6 +213,27 @@ _H5Part_strc2for ( return str; } +char +_H5Part_flagsfor2c ( + char * flags + ) { + + char fbits = 0x00; + + flags = strtok ( str, "," ); + while ( flags != NULL ) { + if ( strcmp ( flags, "vfd_mpiposix" ) == 0 ) + fbits |= H5PART_VFD_MPIPOSIX; + else if ( strcmp ( flags, "fs_lustre" ) == 0 ) + fbits |= H5PART_FS_LUSTRE; + else if (strcmp ( flags, "fs_gpfs" ) == 0 ) + fbits |= H5PART_FS_GPFS; + strtok ( NULL, "," ); + } + + return fbits; +} + /* open/close interface */ h5part_int64_t h5pt_openr ( @@ -372,13 +393,18 @@ h5pt_openw_par_align ( const char *file_name, MPI_Comm *comm, const h5part_int64_t *align, - const int l_file_name + const char *flags, + const int l_file_name, + const int l_flags ) { char *file_name2 = _H5Part_strdupfor2c ( file_name, l_file_name ); + char *flags2 = _H5Part_strdupfor2c ( flags, l_flags ); + + char fbits = H5PART_WRITE | _H5Part_flagsfor2c ( flags2 ); H5PartFile* f = H5PartOpenFileParallelAlign ( - file_name2, H5PART_WRITE, *comm, *align ); + file_name2, fbits, *comm, *align ); free ( file_name2 ); return (h5part_int64_t)(size_t)f; @@ -389,16 +415,21 @@ h5pt_opena_par_align ( const char *file_name, MPI_Comm *comm, const h5part_int64_t *align, - const int l_file_name + const char *flags, + const int l_file_name, + const int l_flags ) { char *file_name2 = _H5Part_strdupfor2c ( file_name, l_file_name ); + char *flags2 = _H5Part_strdupfor2c ( flags, l_flags ); - H5PartFile* f = H5PartOpenFileParallelAlign ( - file_name2, H5PART_APPEND, *comm, *align ); - - free ( file_name2 ); - return (h5part_int64_t)(size_t)f; + char fbits = H5PART_APPEND | _H5Part_flagsfor2c ( flags2 ); + + H5PartFile* f = H5PartOpenFileParallelAlign ( + file_name2, fbits, *comm, *align ); + + free ( file_name2 ); + return (h5part_int64_t)(size_t)f; } #endif diff --git a/src/H5PartF90.inc b/src/H5PartF90.inc index a6532d8..3ac5c68 100644 --- a/src/H5PartF90.inc +++ b/src/H5PartF90.inc @@ -1,289 +1,291 @@ ! Declaration of subroutines for Fortran Bindings ! open/close interface - INTERFACE - INTEGER*8 FUNCTION h5pt_openr ( filename ) - CHARACTER(LEN=*), INTENT(IN) :: filename ! the filename to open for reading - END FUNCTION +INTERFACE + INTEGER*8 FUNCTION h5pt_openr ( filename ) + CHARACTER(LEN=*), INTENT(IN) :: filename ! the filename to open for reading + END FUNCTION - INTEGER*8 FUNCTION h5pt_openw ( filename ) - CHARACTER(LEN=*), INTENT(IN) :: filename ! the filename to open for writing - END FUNCTION + INTEGER*8 FUNCTION h5pt_openw ( filename ) + CHARACTER(LEN=*), INTENT(IN) :: filename ! the filename to open for writing + END FUNCTION - INTEGER*8 FUNCTION h5pt_opena ( filename ) - CHARACTER(LEN=*), INTENT(IN) :: filename ! the filename to open for appending - END FUNCTION + INTEGER*8 FUNCTION h5pt_opena ( filename ) + CHARACTER(LEN=*), INTENT(IN) :: filename ! the filename to open for appending + END FUNCTION - INTEGER*8 FUNCTION h5pt_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 + INTEGER*8 FUNCTION h5pt_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 - INTEGER*8 FUNCTION h5pt_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 + INTEGER*8 FUNCTION h5pt_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 - INTEGER*8 FUNCTION h5pt_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 + INTEGER*8 FUNCTION h5pt_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 - INTEGER*8 FUNCTION h5pt_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 + INTEGER*8 FUNCTION h5pt_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 - INTEGER*8 FUNCTION h5pt_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 + INTEGER*8 FUNCTION h5pt_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 - INTEGER*8 FUNCTION h5pt_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 + INTEGER*8 FUNCTION h5pt_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 - INTEGER*8 FUNCTION h5pt_openr_par_align ( filename, mpi_communicator, align ) - 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 - END FUNCTION + INTEGER*8 FUNCTION h5pt_openr_par_align ( filename, mpi_communicator, align ) + 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 + END FUNCTION - INTEGER*8 FUNCTION h5pt_openw_par_align ( filename, mpi_communicator, align ) - 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 - END FUNCTION + INTEGER*8 FUNCTION h5pt_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 - INTEGER*8 FUNCTION h5pt_opena_par_align ( filename, mpi_communicator, align ) - 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 - END FUNCTION + INTEGER*8 FUNCTION h5pt_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 - INTEGER*8 FUNCTION h5pt_close ( filehandle ) - INTEGER*8, INTENT(IN) :: filehandle ! close this open filehandle - END FUNCTION + INTEGER*8 FUNCTION h5pt_close ( filehandle ) + INTEGER*8, INTENT(IN) :: filehandle ! close this open filehandle + END FUNCTION !==============Writing and Setting Dataset info======== - INTEGER*8 FUNCTION h5pt_setnpoints ( filehandle, npoints ) - INTEGER*8, INTENT(IN) :: filehandle - INTEGER*8, INTENT(IN) :: npoints ! The number of particles on *this* processor - END FUNCTION - - INTEGER*8 FUNCTION h5pt_setstep (filehandle,step) - INTEGER*8, INTENT(IN) :: filehandle - INTEGER*8, INTENT(IN) :: step ! Set the current timestep in the file to this - END FUNCTION - - INTEGER*8 FUNCTION h5pt_writedata_r8 ( filehandle, name, data ) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing - REAL*8, INTENT(IN) :: data(*) ! The dataarray to write. The number of - ! elements is presumably set earlier with - ! h5pt_setnpoints(f,npoints) - END FUNCTION + INTEGER*8 FUNCTION h5pt_setnpoints ( filehandle, npoints ) + INTEGER*8, INTENT(IN) :: filehandle + INTEGER*8, INTENT(IN) :: npoints ! The number of particles on *this* processor + END FUNCTION - INTEGER*8 FUNCTION h5pt_writedata_r4 ( filehandle, name, data ) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing - REAL, INTENT(IN) :: data(*) ! The dataarray to write. The number of - ! elements is presumably set earlier with - ! h5pt_setnpoints(f,npoints) - END FUNCTION + INTEGER*8 FUNCTION h5pt_setstep (filehandle,step) + INTEGER*8, INTENT(IN) :: filehandle + INTEGER*8, INTENT(IN) :: step ! Set the current timestep in the file to this + END FUNCTION - INTEGER*8 FUNCTION h5pt_writedata_i8 ( filehandle, name, data ) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing - INTEGER*8, INTENT(IN) :: data(*) - END FUNCTION + INTEGER*8 FUNCTION h5pt_writedata_r8 ( filehandle, name, data ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing + REAL*8, INTENT(IN) :: data(*) ! The dataarray to write. The number of + ! elements is presumably set earlier with + ! h5pt_setnpoints(f,npoints) + END FUNCTION - INTEGER*8 FUNCTION h5pt_writedata_i4 ( filehandle, name, data ) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing - INTEGER, INTENT(IN) :: data(*) - END FUNCTION + INTEGER*8 FUNCTION h5pt_writedata_r4 ( filehandle, name, data ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing + REAL, INTENT(IN) :: data(*) ! The dataarray to write. The number of + ! elements is presumably set earlier with + ! h5pt_setnpoints(f,npoints) + END FUNCTION + + INTEGER*8 FUNCTION h5pt_writedata_i8 ( filehandle, name, data ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing + INTEGER*8, INTENT(IN) :: data(*) + END FUNCTION + + INTEGER*8 FUNCTION h5pt_writedata_i4 ( filehandle, name, data ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing + INTEGER, INTENT(IN) :: data(*) + END FUNCTION !==============Reading Data Characteristics============ - INTEGER*8 FUNCTION h5pt_getnsteps (filehandle) - INTEGER*8, INTENT(IN) :: filehandle - END FUNCTION - - INTEGER*8 FUNCTION h5pt_getndatasets (filehandle) - INTEGER*8, INTENT(IN) :: filehandle - END FUNCTION + INTEGER*8 FUNCTION h5pt_getnsteps (filehandle) + INTEGER*8, INTENT(IN) :: filehandle + END FUNCTION + + INTEGER*8 FUNCTION h5pt_getndatasets (filehandle) + INTEGER*8, INTENT(IN) :: filehandle + END FUNCTION ! returns total number of points in this timestep ! If a "view" has been set using h5pt_setview() ! then it returns the number of points that are ! in the current view. - INTEGER*8 FUNCTION h5pt_getnpoints (filehandle) - INTEGER*8, INTENT(IN) :: filehandle - END FUNCTION + INTEGER*8 FUNCTION h5pt_getnpoints (filehandle) + INTEGER*8, INTENT(IN) :: filehandle + END FUNCTION + + INTEGER*8 FUNCTION h5pt_getdatasetname (filehandle,index,name) + INTEGER*8, INTENT(IN) :: filehandle + INTEGER*8, INTENT(IN) :: index ! Index for a given dataset name + CHARACTER(LEN=*), INTENT(OUT) :: name ! returns the name of the dataset at that index + END FUNCTION - INTEGER*8 FUNCTION h5pt_getdatasetname (filehandle,index,name) - INTEGER*8, INTENT(IN) :: filehandle - INTEGER*8, INTENT(IN) :: index ! Index for a given dataset name - CHARACTER(LEN=*), INTENT(OUT) :: name ! returns the name of the dataset at that index - END FUNCTION - !=============Setting and getting views================ - INTEGER*8 FUNCTION h5pt_setview (filehandle,start,end) - INTEGER*8, INTENT(IN) :: filehandle - INTEGER*8, INTENT(IN) :: start ! offset of the first particle in the view - INTEGER*8, INTENT(IN) :: end ! offset of the first particle after the end of the view - END FUNCTION - - INTEGER*8 FUNCTION h5pt_resetview (filehandle) - INTEGER*8, INTENT(IN) :: filehandle ! reset the view on this filehandle to default - END FUNCTION - - INTEGER*8 FUNCTION h5pt_hasview (filehandle) - INTEGER*8, INTENT(IN) :: filehandle - END FUNCTION + INTEGER*8 FUNCTION h5pt_setview (filehandle,start,end) + INTEGER*8, INTENT(IN) :: filehandle + INTEGER*8, INTENT(IN) :: start ! offset of the first particle in the view + INTEGER*8, INTENT(IN) :: end ! offset of the first particle after the end of the view + END FUNCTION - INTEGER*8 FUNCTION h5pt_getview (filehandle,start,end) - INTEGER*8, INTENT(IN) :: filehandle - INTEGER*8, INTENT(OUT) :: start ! offset of first particle in the view - INTEGER*8, INTENT(OUT) :: end ! offset of first particle beyond the current view - END FUNCTION + INTEGER*8 FUNCTION h5pt_resetview (filehandle) + INTEGER*8, INTENT(IN) :: filehandle ! reset the view on this filehandle to default + END FUNCTION + + INTEGER*8 FUNCTION h5pt_hasview (filehandle) + INTEGER*8, INTENT(IN) :: filehandle + END FUNCTION + + INTEGER*8 FUNCTION h5pt_getview (filehandle,start,end) + INTEGER*8, INTENT(IN) :: filehandle + INTEGER*8, INTENT(OUT) :: start ! offset of first particle in the view + INTEGER*8, INTENT(OUT) :: end ! offset of first particle beyond the current view + END FUNCTION !==============Reading Data========================= - INTEGER*8 FUNCTION h5pt_readdata_r8 (filehandle,name,data) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing - REAL*8, INTENT(OUT) :: data(*) ! The dataarray to read. Number of points - ! read is either the number within the view set - ! by h5pt_setview() or the default (the total - ! number of particles in the file. - END FUNCTION + INTEGER*8 FUNCTION h5pt_readdata_r8 (filehandle,name,data) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing + REAL*8, INTENT(OUT) :: data(*) ! The dataarray to read. Number of points + ! read is either the number within the view set + ! by h5pt_setview() or the default (the total + ! number of particles in the file. + END FUNCTION - INTEGER*8 FUNCTION h5pt_readdata_r4 (filehandle,name,data) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing - REAL, INTENT(OUT) :: data(*) ! The dataarray to read. Number of points - ! read is either the number within the view set - ! by h5pt_setview() or the default (the total - ! number of particles in the file. - END FUNCTION + INTEGER*8 FUNCTION h5pt_readdata_r4 (filehandle,name,data) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing + REAL, INTENT(OUT) :: data(*) ! The dataarray to read. Number of points + ! read is either the number within the view set + ! by h5pt_setview() or the default (the total + ! number of particles in the file. + END FUNCTION - INTEGER*8 FUNCTION h5pt_readdata_i8 (filehandle,name,data) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing - INTEGER*8, INTENT(OUT) :: data(*) ! The dataarray to read. Number of points - ! read is either the number within the view set - ! by h5pt_setview() or the default (the total - ! number of particles in the file. - END FUNCTION + INTEGER*8 FUNCTION h5pt_readdata_i8 (filehandle,name,data) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing + INTEGER*8, INTENT(OUT) :: data(*) ! The dataarray to read. Number of points + ! read is either the number within the view set + ! by h5pt_setview() or the default (the total + ! number of particles in the file. + END FUNCTION - INTEGER*8 FUNCTION h5pt_readdata_i4 (filehandle,name,data) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing - INTEGER, INTENT(OUT) :: data(*) ! The dataarray to read. Number of points - ! read is either the number within the view set - ! by h5pt_setview() or the default (the total - ! number of particles in the file. - END FUNCTION + INTEGER*8 FUNCTION h5pt_readdata_i4 (filehandle,name,data) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: name ! The name of the data we are writing + INTEGER, INTENT(OUT) :: data(*) ! The dataarray to read. Number of points + ! read is either the number within the view set + ! by h5pt_setview() or the default (the total + ! number of particles in the file. + END FUNCTION !=================== Attributes ================ - - INTEGER*8 FUNCTION h5pt_writefileattrib_r8 (filehandle,attrib_name,attrib_value,attrib_nelem) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute - REAL*8, INTENT(IN) :: attrib_value(*) ! The array of data to write into the attribute - INTEGER*8, INTENT(IN) :: attrib_nelem ! Number of elements in the attrib array - END FUNCTION - INTEGER*8 FUNCTION h5pt_writefileattrib_i8 (filehandle,attrib_name,attrib_value,attrib_nelem) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute - INTEGER*8, INTENT(IN) :: attrib_value(*) ! The array of data to write into the attribute - INTEGER*8, INTENT(IN) :: attrib_nelem ! Number of elements in the attrib array - END FUNCTION - - INTEGER*8 FUNCTION h5pt_writefileattrib_string (filehandle,attrib_name,attrib_value) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute - CHARACTER(LEN=*), INTENT(IN) :: attrib_value ! The array of data to write into the attribute - END FUNCTION + INTEGER*8 FUNCTION h5pt_writefileattrib_r8 (filehandle,attrib_name,attrib_value,attrib_nelem) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute + REAL*8, INTENT(IN) :: attrib_value(*) ! The array of data to write into the attribute + INTEGER*8, INTENT(IN) :: attrib_nelem ! Number of elements in the attrib array + END FUNCTION - INTEGER*8 FUNCTION h5pt_writestepattrib_r8 (filehandle,attrib_name,attrib_value,attrib_nelem) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute - REAL*8, INTENT(IN) :: attrib_value(*) ! The array of data to write into the attribute - INTEGER*8, INTENT(IN) :: attrib_nelem ! Number of elements in the attrib array - END FUNCTION - - INTEGER*8 FUNCTION h5pt_writestepattrib_i8 (filehandle,attrib_name,attrib_value,attrib_nelem) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute - INTEGER*8, INTENT(IN) :: attrib_value(*) ! The array of data to write into the attribute - INTEGER*8, INTENT(IN) :: attrib_nelem ! Number of elements in the attrib array - END FUNCTION + INTEGER*8 FUNCTION h5pt_writefileattrib_i8 (filehandle,attrib_name,attrib_value,attrib_nelem) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute + INTEGER*8, INTENT(IN) :: attrib_value(*) ! The array of data to write into the attribute + INTEGER*8, INTENT(IN) :: attrib_nelem ! Number of elements in the attrib array + END FUNCTION - INTEGER*8 FUNCTION h5pt_writestepattrib_string (filehandle,attrib_name,attrib_value) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute - CHARACTER(LEN=*), INTENT(IN) :: attrib_value ! The array of data to write into the attribute - END FUNCTION + INTEGER*8 FUNCTION h5pt_writefileattrib_string (filehandle,attrib_name,attrib_value) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute + CHARACTER(LEN=*), INTENT(IN) :: attrib_value ! The array of data to write into the attribute + END FUNCTION + + INTEGER*8 FUNCTION h5pt_writestepattrib_r8 (filehandle,attrib_name,attrib_value,attrib_nelem) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute + REAL*8, INTENT(IN) :: attrib_value(*) ! The array of data to write into the attribute + INTEGER*8, INTENT(IN) :: attrib_nelem ! Number of elements in the attrib array + END FUNCTION + + INTEGER*8 FUNCTION h5pt_writestepattrib_i8 (filehandle,attrib_name,attrib_value,attrib_nelem) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute + INTEGER*8, INTENT(IN) :: attrib_value(*) ! The array of data to write into the attribute + INTEGER*8, INTENT(IN) :: attrib_nelem ! Number of elements in the attrib array + END FUNCTION + + INTEGER*8 FUNCTION h5pt_writestepattrib_string (filehandle,attrib_name,attrib_value) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute + CHARACTER(LEN=*), INTENT(IN) :: attrib_value ! The array of data to write into the attribute + END FUNCTION - INTEGER*8 FUNCTION h5pt_getnstepattribs (filehandle) - INTEGER*8, INTENT(IN) :: filehandle - END FUNCTION + INTEGER*8 FUNCTION h5pt_getnstepattribs (filehandle) + INTEGER*8, INTENT(IN) :: filehandle + END FUNCTION - INTEGER*8 FUNCTION h5pt_getnfileattribs (filehandle) - INTEGER*8, INTENT(IN) :: filehandle - END FUNCTION + INTEGER*8 FUNCTION h5pt_getnfileattribs (filehandle) + INTEGER*8, INTENT(IN) :: filehandle + END FUNCTION - INTEGER*8 FUNCTION h5pt_getstepattribinfo (filehandle,idx,attrib_name,attrib_nelem) - INTEGER*8, INTENT(IN) :: filehandle - INTEGER*8, INTENT(IN) :: idx ! index of the attribute being queried - CHARACTER(LEN=*), INTENT(OUT) :: attrib_name ! The name of the attribute - INTEGER*8, INTENT(OUT) :: attrib_nelem ! Number of elements in the attrib array - END FUNCTION + INTEGER*8 FUNCTION h5pt_getstepattribinfo (filehandle,idx,attrib_name,attrib_nelem) + INTEGER*8, INTENT(IN) :: filehandle + INTEGER*8, INTENT(IN) :: idx ! index of the attribute being queried + CHARACTER(LEN=*), INTENT(OUT) :: attrib_name ! The name of the attribute + INTEGER*8, INTENT(OUT) :: attrib_nelem ! Number of elements in the attrib array + END FUNCTION - INTEGER*8 FUNCTION h5pt_getfileattribinfo (filehandle,idx,attrib_name,attrib_nelem) - INTEGER*8, INTENT(IN) :: filehandle - INTEGER*8, INTENT(IN) :: idx ! index of the attribute being queried - CHARACTER(LEN=*), INTENT(OUT) :: attrib_name ! The name of the attribute - INTEGER*8, INTENT(OUT) :: attrib_nelem ! Number of elements in the attrib array - END FUNCTION + INTEGER*8 FUNCTION h5pt_getfileattribinfo (filehandle,idx,attrib_name,attrib_nelem) + INTEGER*8, INTENT(IN) :: filehandle + INTEGER*8, INTENT(IN) :: idx ! index of the attribute being queried + CHARACTER(LEN=*), INTENT(OUT) :: attrib_name ! The name of the attribute + INTEGER*8, INTENT(OUT) :: attrib_nelem ! Number of elements in the attrib array + END FUNCTION - INTEGER*8 FUNCTION h5pt_readstepattrib_i8 ( filehandle, attrib_name, attrib_value ) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read - INTEGER*8, INTENT(OUT) :: attrib_value(*) ! the attribute data will be read into this array - END FUNCTION + INTEGER*8 FUNCTION h5pt_readstepattrib_i8 ( filehandle, attrib_name, attrib_value ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read + INTEGER*8, INTENT(OUT) :: attrib_value(*) ! the attribute data will be read into this array + END FUNCTION - INTEGER*8 FUNCTION h5pt_readstepattrib_r8 ( filehandle, attrib_name, attrib_value ) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read - REAL*8, INTENT(OUT) :: attrib_value(*) ! the attribute data will be read into this array - END FUNCTION + INTEGER*8 FUNCTION h5pt_readstepattrib_r8 ( filehandle, attrib_name, attrib_value ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read + REAL*8, INTENT(OUT) :: attrib_value(*) ! the attribute data will be read into this array + END FUNCTION - INTEGER*8 FUNCTION h5pt_readfileattrib_i8 (filehandle, attrib_name, attrib_value ) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read - INTEGER*8, INTENT(OUT) :: attrib_value(*) ! the attribute data will be read into this array - END FUNCTION - - INTEGER*8 FUNCTION h5pt_readfileattrib_r8 (filehandle, attrib_name, attrib_value ) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read - REAL*8, INTENT(OUT) :: attrib_value(*) ! the attribute data will be read into this array - END FUNCTION + INTEGER*8 FUNCTION h5pt_readfileattrib_i8 (filehandle, attrib_name, attrib_value ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read + INTEGER*8, INTENT(OUT) :: attrib_value(*) ! the attribute data will be read into this array + END FUNCTION + + INTEGER*8 FUNCTION h5pt_readfileattrib_r8 (filehandle, attrib_name, attrib_value ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read + REAL*8, INTENT(OUT) :: attrib_value(*) ! the attribute data will be read into this array + END FUNCTION - INTEGER*8 FUNCTION h5pt_set_verbosity_level ( level ) - INTEGER*8, INTENT(IN) :: level - END FUNCTION + INTEGER*8 FUNCTION h5pt_set_verbosity_level ( level ) + INTEGER*8, INTENT(IN) :: level + END FUNCTION - END INTERFACE +END INTERFACE