mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-02-23 16:20:57 +08:00
[svn-r22822] Fix for HDFFV-7658: Add FORTRAN interface for H5Pget_mpio_actual_io_mode API routine
Test: jam (gnu)
This commit is contained in:
parent
0ae06ebea6
commit
dbf542c008
@ -300,3 +300,40 @@ nh5pget_fapl_mpiposix_c(hid_t_f *prp_id, int_f* comm, int_f* flag)
|
||||
ret_value = 0;
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
/****if* H5Pf/h5pget_mpio_actual_io_mode_c
|
||||
* NAME
|
||||
* h5pget_mpio_actual_io_mode_c
|
||||
* PURPOSE
|
||||
* Calls H5Pget_mpio_actual_io_mode
|
||||
*
|
||||
* INPUTS
|
||||
* dxpl_id - Dataset transfer property list identifier.
|
||||
* OUTPUTS
|
||||
* actual_io_mode - The type of I/O performed by this process.
|
||||
*
|
||||
* RETURNS
|
||||
* 0 on success, -1 on failure
|
||||
* AUTHOR
|
||||
* M. Scot Breitenfeld
|
||||
* July 27, 2012
|
||||
* SOURCE
|
||||
*/
|
||||
int_f
|
||||
nh5pget_mpio_actual_io_mode_c(hid_t_f *dxpl_id, int_f *actual_io_mode)
|
||||
/******/
|
||||
{
|
||||
int ret_value = -1;
|
||||
H5D_mpio_actual_io_mode_t c_actual_io_mode;
|
||||
|
||||
/*
|
||||
* Call H5Pget_mpio_actual_io_mode_f function.
|
||||
*/
|
||||
if( (H5Pget_mpio_actual_io_mode((hid_t)*dxpl_id, &c_actual_io_mode)) <0 )
|
||||
return ret_value; /* error occurred */
|
||||
|
||||
*actual_io_mode =(int_f)c_actual_io_mode;
|
||||
|
||||
ret_value = 0;
|
||||
return ret_value;
|
||||
}
|
||||
|
@ -234,4 +234,49 @@ CONTAINS
|
||||
IF (flag .EQ. 1) use_gpfs = .TRUE.
|
||||
END SUBROUTINE h5pget_fapl_mpiposix_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
|
||||
|
||||
END MODULE H5FDMPIO
|
||||
|
@ -806,11 +806,21 @@ H5_FCDLL int_f nh5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts,
|
||||
#define nh5olink_c H5_FC_FUNC_(h5olink_c, H5OLINK_C)
|
||||
#define nh5oopen_c H5_FC_FUNC_(h5oopen_c, H5OOPEN_C)
|
||||
#define nh5oclose_c H5_FC_FUNC_(h5oclose_c, H5OCLOSE_C)
|
||||
#define nh5ovisit_c H5_FC_FUNC_(h5ovisit_c,H5OVISIT_C)
|
||||
#define nh5ovisit_c H5_FC_FUNC_(h5ovisit_c, H5OVISIT_C)
|
||||
#define nh5ovisit_by_name_c H5_FC_FUNC_(h5ovisit_by_name_c, H5OVISIT_BY_NAME_C)
|
||||
#define nh5oget_info_c H5_FC_FUNC_(h5oget_info_c, H5OGET_INFO_C)
|
||||
#define nh5oget_info_by_idx_c H5_FC_FUNC_(h5oget_info_by_idx_c ,H5OGET_INFO_BY_IDX_C)
|
||||
#define nh5oget_info_by_name_c H5_FC_FUNC_(h5oget_info_by_name_c ,H5OGET_INFO_BY_NAME_C)
|
||||
#define nh5oopen_by_addr_c H5_FC_FUNC_(h5oopen_by_addr_c, H5OOPEN_BY_ADDR_C)
|
||||
#define nh5ocopy_c H5_FC_FUNC_(h5ocopy_c, H5OCOPY_C)
|
||||
|
||||
#define nh5odecr_refcount_c H5_FC_FUNC_(h5odecr_refcount_c, H5ODECR_REFCOUNT_C)
|
||||
#define nh5oincr_refcount_c H5_FC_FUNC_(h5oincr_refcount_c, H5OINCR_REFCOUNT_C)
|
||||
#define nh5oexists_by_name_c H5_FC_FUNC_(h5oexists_by_name_c, H5OEXISTS_BY_NAME_C)
|
||||
#define nh5oset_comment_c H5_FC_FUNC_(h5oset_comment_c, H5OSET_COMMENT_C)
|
||||
#define nh5oset_comment_by_name_c H5_FC_FUNC_(h5oset_comment_by_name_c, H5OSET_COMMENT_BY_NAME_C)
|
||||
#define nh5oopen_by_idx_c H5_FC_FUNC_(h5oopen_by_idx_c, H5OOPEN_BY_IDX_C)
|
||||
#define nh5oget_comment_c H5_FC_FUNC_(h5oget_comment_c, H5OGET_COMMENT_C)
|
||||
#define nh5oget_comment_by_name_c H5_FC_FUNC_(h5oget_comment_by_name_c, H5OGET_COMMENT_BY_NAME_C)
|
||||
|
||||
H5_FCDLL int_f nh5oopen_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, hid_t_f *obj_id);
|
||||
H5_FCDLL int_f nh5oclose_c (hid_t_f *object_id );
|
||||
@ -818,11 +828,26 @@ H5_FCDLL int_f nh5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *ob
|
||||
H5_FCDLL int_f nh5olink_c (hid_t_f *object_id, hid_t_f *new_loc_id, _fcd name, size_t_f *namelen,
|
||||
hid_t_f *lcpl_id, hid_t_f *lapl_id);
|
||||
H5_FCDLL int_f nh5ovisit_c (hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data);
|
||||
H5_FCDLL int_f nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen,hid_t_f *lapl_id,
|
||||
H5_FCDLL int_f nh5ovisit_by_name_c(hid_t_f *loc_id, _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order,
|
||||
H5O_iterate_t op, void *op_data, hid_t_f *lapl_id );
|
||||
H5_FCDLL int_f nh5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info);
|
||||
H5_FCDLL int_f nh5oget_info_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *namelen,
|
||||
int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, H5O_info_t_f *object_info);
|
||||
H5_FCDLL int_f nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id,
|
||||
H5O_info_t_f *object_info);
|
||||
H5_FCDLL int_f nh5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len,
|
||||
hid_t_f *dst_loc_id, _fcd dst_name, size_t_f *dst_name_len,
|
||||
hid_t_f *ocpypl_id, hid_t_f *lcpl_id );
|
||||
H5_FCDLL int_f nh5odecr_refcount_c (hid_t_f *object_id);
|
||||
H5_FCDLL int_f nh5oincr_refcount_c (hid_t_f *object_id);
|
||||
H5_FCDLL int_f nh5oexists_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id);
|
||||
H5_FCDLL int_f nh5oset_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentlen);
|
||||
H5_FCDLL int_f nh5oset_comment_by_name_c (hid_t_f *object_id, _fcd name, size_t_f *namelen, _fcd comment, size_t_f *commentlen, hid_t_f *lapl_id);
|
||||
H5_FCDLL int_f nh5oopen_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
|
||||
int_f *index_type, int_f *order, hsize_t_f *n, hid_t_f *obj_id, hid_t_f *lapl_id);
|
||||
H5_FCDLL int_f nh5oget_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentsize, hssize_t_f *bufsize);
|
||||
H5_FCDLL int_f nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size,
|
||||
_fcd comment, size_t_f *commentsize, size_t_f *bufsize, hid_t_f *lapl_id);
|
||||
/*
|
||||
* Functions from H5Pf.c
|
||||
*/
|
||||
@ -982,6 +1007,7 @@ H5_FCDLL int_f nh5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_nam
|
||||
#define nh5pget_nlinks_c H5_FC_FUNC_(h5pget_nlinks_c, H5PGET_NLINKS_C)
|
||||
#define nh5pset_chunk_cache_c H5_FC_FUNC_(h5pset_chunk_cache_c, H5PSET_CHUNK_CACHE_C)
|
||||
#define nh5pget_chunk_cache_c H5_FC_FUNC_(h5pget_chunk_cache_c, H5PGET_CHUNK_CACHE_C)
|
||||
#define nh5pget_mpio_actual_io_mode_c H5_FC_FUNC_(h5pget_mpio_actual_io_mode_c, H5PGET_MPIO_ACTUAL_IO_MODE_C)
|
||||
|
||||
H5_FCDLL int_f nh5pcreate_c ( hid_t_f *cls, hid_t_f *prp_id );
|
||||
H5_FCDLL int_f nh5pclose_c ( hid_t_f *prp_id );
|
||||
@ -1142,6 +1168,7 @@ H5_FCDLL int_f nh5pset_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks);
|
||||
H5_FCDLL int_f nh5pget_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks);
|
||||
H5_FCDLL int_f nh5pset_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0);
|
||||
H5_FCDLL int_f nh5pget_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0);
|
||||
H5_FCDLL int_f nh5pget_mpio_actual_io_mode_c(hid_t_f *dxpl_id, int_f *actual_io_mode);
|
||||
/*
|
||||
* Functions frome H5Rf.c
|
||||
*/
|
||||
|
@ -50,6 +50,7 @@ SUBROUTINE hyper(length,do_collective,do_chunk, mpi_size, mpi_rank, nerrors)
|
||||
INTEGER :: icount ! number of elements in array
|
||||
CHARACTER(len=80) :: filename ! filename
|
||||
INTEGER :: i
|
||||
INTEGER :: actual_io_mode ! The type of I/O performed by this process
|
||||
|
||||
!//////////////////////////////////////////////////////////
|
||||
! initialize the array data between the processes (3)
|
||||
@ -180,6 +181,24 @@ SUBROUTINE hyper(length,do_collective,do_chunk, mpi_size, mpi_rank, nerrors)
|
||||
CALL check("h5dwrite_f", hdferror, nerrors)
|
||||
|
||||
|
||||
! Check h5pget_mpio_actual_io_mode_f function
|
||||
CALL h5pget_mpio_actual_io_mode_f(dxpl_id, actual_io_mode, hdferror)
|
||||
CALL check("h5pget_mpio_actual_io_mode_f", hdferror, nerrors)
|
||||
|
||||
IF(do_collective.AND.do_chunk)THEN
|
||||
IF(actual_io_mode.NE.H5D_MPIO_CHUNK_COLLECTIVE_F)THEN
|
||||
CALL check("h5pget_mpio_actual_io_mode_f", -1, nerrors)
|
||||
ENDIF
|
||||
ELSEIF(.NOT.do_collective)THEN
|
||||
IF(actual_io_mode.NE.H5D_MPIO_NO_COLLECTIVE_F)THEN
|
||||
CALL check("h5pget_mpio_actual_io_mode_f", -1, nerrors)
|
||||
ENDIF
|
||||
ELSEIF( do_collective.AND.(.NOT.do_chunk))THEN
|
||||
IF(actual_io_mode.NE.H5D_MPIO_CONTIG_COLLECTIVE_F)THEN
|
||||
CALL check("h5pget_mpio_actual_io_mode_f", -1, nerrors)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
!//////////////////////////////////////////////////////////
|
||||
! close HDF5 I/O
|
||||
!//////////////////////////////////////////////////////////
|
||||
|
Loading…
Reference in New Issue
Block a user