summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5Pff.F90
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2015-04-16 20:52:07 (GMT)
committerScot Breitenfeld <brtnfld@hdfgroup.org>2015-04-16 20:52:07 (GMT)
commitbd0aaf89e2464b8ac61906abf08af304dff2c6f3 (patch)
tree3fe3574fd52426ca26352795394c0df4abb1aba0 /fortran/src/H5Pff.F90
parentfa26809cdfd4f463969d49cf0074affe07fea6d3 (diff)
downloadhdf5-bd0aaf89e2464b8ac61906abf08af304dff2c6f3.zip
hdf5-bd0aaf89e2464b8ac61906abf08af304dff2c6f3.tar.gz
hdf5-bd0aaf89e2464b8ac61906abf08af304dff2c6f3.tar.bz2
[svn-r26827] Combined parallel APIs and removed no longer needed parallel files.
Diffstat (limited to 'fortran/src/H5Pff.F90')
-rw-r--r--fortran/src/H5Pff.F90181
1 files changed, 181 insertions, 0 deletions
diff --git a/fortran/src/H5Pff.F90 b/fortran/src/H5Pff.F90
index 18da887..db51321 100644
--- a/fortran/src/H5Pff.F90
+++ b/fortran/src/H5Pff.F90
@@ -31,6 +31,8 @@
! This is needed for Windows based operating systems.
!*****
+#include "H5config_f.inc"
+
MODULE H5P
USE H5GLOBAL
@@ -7618,6 +7620,185 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
END SUBROUTINE h5pget_file_image_f
+! Fortran interfaces for H5P functions needed by parallel MPI programs.
+
+#ifdef H5_HAVE_PARALLEL
+
+!****s* H5P/h5pset_fapl_mpio_f
+!
+! NAME
+! h5pset_fapl_mpio_f
+!
+! PURPOSE
+! Stores MPI IO communicator information to the file
+! access property list.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! comm - MPI-2 communicator
+! info - MPI-2 info object
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! November, 2000
+!
+! SOURCE
+ SUBROUTINE h5pset_fapl_mpio_f(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: comm ! MPI communicator to be used for file open
+ ! as defined in MPI_FILE_OPEN of MPI-2
+ INTEGER, INTENT(IN) :: info ! MPI info object to be used for file open
+ ! as defined in MPI_FILE_OPEN of MPI-2
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER, EXTERNAL :: h5pset_fapl_mpio_c
+ hdferr = h5pset_fapl_mpio_c(prp_id, comm, info)
+ END SUBROUTINE h5pset_fapl_mpio_f
+
+!****s* H5P/h5pget_fapl_mpio_f
+!
+! NAME
+! h5pget_fapl_mpio_f
+!
+! PURPOSE
+! Returns MPI communicator information.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! OUTPUTS
+! comm - MPI-2 communicator
+! info - MPI-2 info object
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! November, 2000
+!
+! SOURCE
+ SUBROUTINE h5pget_fapl_mpio_f(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: comm ! buffer to return communicator
+ INTEGER, INTENT(OUT) :: info ! buffer to return info object
+ ! as defined in MPI_FILE_OPEN of MPI-2
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER, EXTERNAL :: h5pget_fapl_mpio_c
+ hdferr = h5pget_fapl_mpio_c(prp_id, comm, info)
+ END SUBROUTINE h5pget_fapl_mpio_f
+
+!****s* H5P/h5pset_dxpl_mpio_f
+!
+! NAME
+! h5pset_dxpl_mpio_f
+!
+! PURPOSE
+! Sets data transfer mode.
+!
+! INPUTS
+! prp_id - data transfer property list identifier
+! data_xfer_mode - transfer mode; possible values are:
+! H5FD_MPIO_INDEPENDENT_F
+! H5FD_MPIO_COLLECTIVE_F
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! November, 2000
+!
+! SOURCE
+ SUBROUTINE h5pset_dxpl_mpio_f(prp_id, data_xfer_mode, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: data_xfer_mode ! Data transfer mode. Possible values are:
+ ! H5FD_MPIO_INDEPENDENT_F
+ ! H5FD_MPIO_COLLECTIVE_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER, EXTERNAL :: h5pset_dxpl_mpio_c
+ hdferr = h5pset_dxpl_mpio_c(prp_id, data_xfer_mode)
+ END SUBROUTINE h5pset_dxpl_mpio_f
+
+!****s* H5P/h5pget_dxpl_mpio_f
+!
+! NAME
+! h5pget_dxpl_mpio_f
+!
+! PURPOSE
+! Returns the data transfer mode.
+!
+! INPUTS
+! prp_id - data transfer property list identifier
+! OUTPUTS
+! data_xfer_mode- transfer mode; possible values are:
+! H5FD_MPIO_INDEPENDENT_F
+! H5FD_MPIO_COLLECTIVE_F
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! November, 2000
+!
+! SOURCE
+ SUBROUTINE h5pget_dxpl_mpio_f(prp_id, data_xfer_mode, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: data_xfer_mode ! Data transfer mode. Possible values are:
+ ! H5FD_MPIO_INDEPENDENT_F
+ ! H5FD_MPIO_COLLECTIVE_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER, EXTERNAL :: h5pget_dxpl_mpio_c
+ hdferr = h5pget_dxpl_mpio_c(prp_id, data_xfer_mode)
+ END SUBROUTINE h5pget_dxpl_mpio_f
+
+!****s* H5P/h5pget_mpio_actual_io_mode_f
+! NAME
+! h5pget_mpio_actual_io_mode_f
+!
+! PURPOSE
+! Retrieves the type of I/O that HDF5 actually performed on the last
+! parallel I/O call. This is not necessarily the type of I/O requested.
+!
+! INPUTS
+! dxpl_id - Dataset transfer property list identifier.
+! OUTPUTS
+! actual_io_mode - The type of I/O performed by this process.
+! hdferr - Returns 0 if successful and -1 if fails.
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! July 27, 2012
+!
+! HISTORY
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_mpio_actual_io_mode_f(dxpl_id, actual_io_mode, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dxpl_id
+ INTEGER , INTENT(OUT) :: actual_io_mode
+ INTEGER , INTENT(OUT) :: hdferr
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_mpio_actual_io_mode_c(dxpl_id, actual_io_mode)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_MPIO_ACTUAL_IO_MODE_C'::h5pget_mpio_actual_io_mode_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dxpl_id
+ INTEGER , INTENT(OUT) :: actual_io_mode
+ END FUNCTION h5pget_mpio_actual_io_mode_c
+ END INTERFACE
+
+ actual_io_mode = -1
+
+ hdferr = h5pget_mpio_actual_io_mode_c(dxpl_id, actual_io_mode)
+
+ END SUBROUTINE h5pget_mpio_actual_io_mode_f
+#endif
+
END MODULE H5P