summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5Pff.F90
diff options
context:
space:
mode:
Diffstat (limited to 'fortran/src/H5Pff.F90')
-rw-r--r--fortran/src/H5Pff.F90266
1 files changed, 249 insertions, 17 deletions
diff --git a/fortran/src/H5Pff.F90 b/fortran/src/H5Pff.F90
index afd17f3..90a74f7 100644
--- a/fortran/src/H5Pff.F90
+++ b/fortran/src/H5Pff.F90
@@ -49,6 +49,12 @@ MODULE H5P
PRIVATE h5pget_integer, h5pget_char, h5pget_ptr
PRIVATE h5pregister_integer, h5pregister_ptr
PRIVATE h5pinsert_integer, h5pinsert_char, h5pinsert_ptr
+#ifdef H5_HAVE_PARALLEL
+ PRIVATE h5pset_fapl_mpio_f90, h5pget_fapl_mpio_f90
+#ifdef H5_HAVE_MPI_F08
+ PRIVATE h5pset_fapl_mpio_f08, h5pget_fapl_mpio_f08
+#endif
+#endif
#ifndef H5_DOXYGEN
@@ -101,7 +107,6 @@ MODULE H5P
MODULE PROCEDURE h5pinsert_ptr
END INTERFACE
-
INTERFACE
INTEGER(C_INT) FUNCTION H5Pset_fill_value(prp_id, type_id, fillvalue) &
BIND(C, NAME='H5Pset_fill_value')
@@ -182,6 +187,35 @@ MODULE H5P
#endif
#ifdef H5_HAVE_PARALLEL
+
+ INTERFACE h5pset_fapl_mpio_f
+ MODULE PROCEDURE h5pset_fapl_mpio_f90
+#ifdef H5_HAVE_MPI_F08
+ MODULE PROCEDURE h5pset_fapl_mpio_f08
+#endif
+ END INTERFACE
+
+ INTERFACE h5pget_fapl_mpio_f
+ MODULE PROCEDURE h5pget_fapl_mpio_f90
+#ifdef H5_HAVE_MPI_F08
+ MODULE PROCEDURE h5pget_fapl_mpio_f08
+#endif
+ END INTERFACE
+
+ INTERFACE H5Pset_mpi_params_f
+ MODULE PROCEDURE H5Pset_mpi_params_f90
+#ifdef H5_HAVE_MPI_F08
+ MODULE PROCEDURE H5Pset_mpi_params_f08
+#endif
+ END INTERFACE
+
+ INTERFACE H5Pget_mpi_params_f
+ MODULE PROCEDURE H5Pget_mpi_params_f90
+#ifdef H5_HAVE_MPI_F08
+ MODULE PROCEDURE H5Pget_mpi_params_f08
+#endif
+ END INTERFACE
+
#ifdef H5_HAVE_SUBFILING_VFD
!> \addtogroup FH5P
!> @{
@@ -5125,6 +5159,8 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
! *********************************************************************
#ifdef H5_HAVE_PARALLEL
+
+#ifdef H5_DOXYGEN
!>
!! \ingroup FH5P
!!
@@ -5143,21 +5179,69 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
INTEGER, INTENT(IN) :: comm
INTEGER, INTENT(IN) :: info
INTEGER, INTENT(OUT) :: hdferr
+ END SUBROUTINE h5pset_fapl_mpio_f
+!>
+!! \ingroup FH5P
+!!
+!! \brief Stores MPI IO communicator information to the file access property list.
+!!
+!! \note Supports MPI Fortran module mpi_f08
+!!
+!! \param prp_id File access property list identifier.
+!! \param comm MPI-3 communicator.
+!! \param info MPI-3 info object.
+!! \param hdferr \fortran_error
+!!
+!! See C API: @ref H5Pset_fapl_mpio()
+!!
+ SUBROUTINE h5pset_fapl_mpio_f(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ TYPE(MPI_COMM), INTENT(IN) :: comm
+ TYPE(MPI_INFO), INTENT(IN) :: info
+ INTEGER, INTENT(OUT) :: hdferr
+ END SUBROUTINE h5pset_fapl_mpio_f
+
+#else
+
+ SUBROUTINE h5pset_fapl_mpio_f90(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: comm
+ INTEGER, INTENT(IN) :: info
+ INTEGER, INTENT(OUT) :: hdferr
INTERFACE
INTEGER FUNCTION h5pset_fapl_mpio_c(prp_id, comm, info) &
BIND(C,NAME='h5pset_fapl_mpio_c')
IMPORT :: HID_T
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER , INTENT(IN) :: comm
- INTEGER , INTENT(IN) :: info
+ INTEGER(HID_T) :: prp_id
+ INTEGER :: comm
+ INTEGER :: info
END FUNCTION h5pset_fapl_mpio_c
END INTERFACE
hdferr = h5pset_fapl_mpio_c(prp_id, comm, info)
- END SUBROUTINE h5pset_fapl_mpio_f
+ END SUBROUTINE h5pset_fapl_mpio_f90
+#ifdef H5_HAVE_MPI_F08
+ SUBROUTINE h5pset_fapl_mpio_f08(prp_id, comm, info, hdferr)
+ USE mpi_f08
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ TYPE(MPI_COMM), INTENT(IN) :: comm
+ TYPE(MPI_INFO), INTENT(IN) :: info
+ INTEGER, INTENT(OUT) :: hdferr
+
+ CALL h5pset_fapl_mpio_f90(prp_id, comm%mpi_val, info%mpi_val, hdferr)
+
+ END SUBROUTINE h5pset_fapl_mpio_f08
+#endif
+
+#endif
+
+#ifdef H5_DOXYGEN
!>
!! \ingroup FH5P
!!
@@ -5168,9 +5252,44 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
!! \param info MPI-2 info object.
!! \param hdferr \fortran_error
!!
+!! \attention It is the responsibility of the application to free the MPI objects.
+!!
!! See C API: @ref H5Pget_fapl_mpio()
!!
- SUBROUTINE h5pget_fapl_mpio_f(prp_id, comm, info, hdferr)
+SUBROUTINE h5pget_fapl_mpio_f(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: comm
+ INTEGER, INTENT(OUT) :: info
+ INTEGER, INTENT(OUT) :: hdferr
+END SUBROUTINE h5pget_fapl_mpio_f
+!>
+!! \ingroup FH5P
+!!
+!! \brief Returns MPI communicator information.
+!!
+!! \note Supports MPI Fortran module mpi_f08
+!!
+!! \param prp_id File access property list identifier.
+!! \param comm MPI-3 communicator.
+!! \param info MPI-3 info object.
+!! \param hdferr \fortran_error
+!!
+!! \attention It is the responsibility of the application to free the MPI objects.
+!!
+!! See C API: @ref H5Pget_fapl_mpio()
+!!
+SUBROUTINE h5pget_fapl_mpio_f(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ TYPE(MPI_COMM), INTENT(OUT) :: comm
+ TYPE(MPI_INFO), INTENT(OUT) :: info
+ INTEGER , INTENT(OUT) :: hdferr
+END SUBROUTINE h5pget_fapl_mpio_f
+
+#else
+
+ SUBROUTINE h5pget_fapl_mpio_f90(prp_id, comm, info, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id
INTEGER, INTENT(OUT) :: comm
@@ -5181,15 +5300,30 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
BIND(C,NAME='h5pget_fapl_mpio_c')
IMPORT :: HID_T
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER , INTENT(OUT) :: comm
- INTEGER , INTENT(OUT) :: info
+ INTEGER(HID_T) :: prp_id
+ INTEGER :: comm
+ INTEGER :: info
END FUNCTION h5pget_fapl_mpio_c
END INTERFACE
hdferr = h5pget_fapl_mpio_c(prp_id, comm, info)
- END SUBROUTINE h5pget_fapl_mpio_f
+ END SUBROUTINE h5pget_fapl_mpio_f90
+
+#ifdef H5_HAVE_MPI_F08
+ SUBROUTINE h5pget_fapl_mpio_f08(prp_id, comm, info, hdferr)
+ USE mpi_f08
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ TYPE(MPI_COMM), INTENT(OUT) :: comm
+ TYPE(MPI_INFO), INTENT(OUT) :: info
+ INTEGER, INTENT(OUT) :: hdferr
+
+ CALL h5pget_fapl_mpio_f90(prp_id, comm%mpi_val, info%mpi_val, hdferr)
+
+ END SUBROUTINE h5pget_fapl_mpio_f08
+#endif
+#endif
#ifdef H5_HAVE_SUBFILING_VFD
!>
@@ -5376,14 +5510,15 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
END SUBROUTINE h5pget_mpio_no_collective_cause_f
+#ifdef H5_DOXYGEN
!>
!! \ingroup FH5P
!!
-!! \brief Set the MPI communicator and info.
+!! \brief Set the MPI communicator and information.
!!
!! \param prp_id File access property list identifier.
-!! \param comm The MPI communicator.
-!! \param info The MPI info object.
+!! \param comm MPI-2 communicator.
+!! \param info MPI-2 info object.
!! \param hdferr \fortran_error
!!
!! See C API: @ref H5Pset_mpi_params()
@@ -5394,6 +5529,37 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
INTEGER , INTENT(IN) :: comm
INTEGER , INTENT(IN) :: info
INTEGER , INTENT(OUT) :: hdferr
+ END SUBROUTINE H5Pset_mpi_params_f
+!>
+!! \ingroup FH5P
+!!
+!! \brief Set the MPI communicator and information.
+!!
+!! \note Supports MPI Fortran module mpi_f08
+!!
+!! \param prp_id File access property list identifier.
+!! \param comm MPI-3 communicator.
+!! \param info MPI-3 info object.
+!! \param hdferr \fortran_error
+!!
+!! See C API: @ref H5Pset_mpi_params()
+!!
+ SUBROUTINE H5Pset_mpi_params_f(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ TYPE(MPI_COMM), INTENT(IN) :: comm
+ TYPE(MPI_INFO), INTENT(IN) :: info
+ INTEGER , INTENT(OUT) :: hdferr
+ END SUBROUTINE H5Pset_mpi_params_f
+
+#else
+
+ SUBROUTINE H5Pset_mpi_params_f90(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER , INTENT(IN) :: comm
+ INTEGER , INTENT(IN) :: info
+ INTEGER , INTENT(OUT) :: hdferr
INTERFACE
INTEGER FUNCTION h5pset_mpi_params_c(prp_id, comm, info) &
@@ -5408,16 +5574,33 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
hdferr = H5Pset_mpi_params_c(prp_id, comm, info)
- END SUBROUTINE H5Pset_mpi_params_f
+ END SUBROUTINE H5Pset_mpi_params_f90
+
+#ifdef H5_HAVE_MPI_F08
+ SUBROUTINE H5Pset_mpi_params_f08(prp_id, comm, info, hdferr)
+ USE mpi_f08
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ TYPE(MPI_COMM), INTENT(IN) :: comm
+ TYPE(MPI_INFO), INTENT(IN) :: info
+ INTEGER , INTENT(OUT) :: hdferr
+
+ CALL H5Pset_mpi_params_f90(prp_id, comm%mpi_val, info%mpi_val, hdferr)
+
+ END SUBROUTINE H5Pset_mpi_params_f08
+#endif
+
+#endif
+#ifdef H5_DOXYGEN
!>
!! \ingroup FH5P
!!
!! \brief Get the MPI communicator and info.
!!
!! \param prp_id File access property list identifier.
-!! \param comm The MPI communicator.
-!! \param info The MPI info object.
+!! \param comm MPI-2 communicator.
+!! \param info MPI-2 info object.
!! \param hdferr \fortran_error
!!
!! See C API: @ref H5Pget_mpi_params()
@@ -5428,6 +5611,39 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
INTEGER , INTENT(OUT) :: comm
INTEGER , INTENT(OUT) :: info
INTEGER , INTENT(OUT) :: hdferr
+ END SUBROUTINE H5Pget_mpi_params_f
+!>
+!! \ingroup FH5P
+!!
+!! \brief Get the MPI communicator and information.
+!!
+!! \note Supports MPI Fortran module mpi_f08
+!!
+!! \param prp_id File access property list identifier.
+!! \param comm MPI-3 communicator.
+!! \param info MPI-3 info object.
+!! \param hdferr \fortran_error
+!!
+!! \attention It is the responsibility of the application to free the MPI objects.
+!!
+!! See C API: @ref H5Pget_mpi_params()
+!!
+ SUBROUTINE H5Pget_mpi_params_f(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ TYPE(MPI_COMM), INTENT(OUT) :: comm
+ TYPE(MPI_INFO), INTENT(OUT) :: info
+ INTEGER , INTENT(OUT) :: hdferr
+ END SUBROUTINE H5Pget_mpi_params_f
+
+#else
+
+ SUBROUTINE H5Pget_mpi_params_f90(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER , INTENT(OUT) :: comm
+ INTEGER , INTENT(OUT) :: info
+ INTEGER , INTENT(OUT) :: hdferr
INTERFACE
INTEGER FUNCTION h5pget_mpi_params_c(prp_id, comm, info) &
@@ -5442,7 +5658,23 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
hdferr = H5Pget_mpi_params_c(prp_id, comm, info)
- END SUBROUTINE H5Pget_mpi_params_f
+ END SUBROUTINE H5Pget_mpi_params_f90
+
+#ifdef H5_HAVE_MPI_F08
+ SUBROUTINE H5Pget_mpi_params_f08(prp_id, comm, info, hdferr)
+ USE mpi_f08
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ TYPE(MPI_COMM), INTENT(OUT) :: comm
+ TYPE(MPI_INFO), INTENT(OUT) :: info
+ INTEGER , INTENT(OUT) :: hdferr
+
+ CALL H5Pget_mpi_params_f90(prp_id, comm%mpi_val, info%mpi_val, hdferr)
+
+ END SUBROUTINE H5Pget_mpi_params_f08
+#endif
+
+#endif
!>
!! \ingroup FH5P