diff options
author | Allen Byrne <50328838+byrnHDF@users.noreply.github.com> | 2022-09-09 01:33:47 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-09 01:33:47 (GMT) |
commit | c28fb80cf600c0cb84f78ab75f51515d916091f7 (patch) | |
tree | 4aa78f3d0575a4e1c68705f269c1a5b47df07faa /fortran/src/H5Sff.F90 | |
parent | 32a0ed93dc75fb9cfe6f2e4d59233f4c600d746f (diff) | |
download | hdf5-c28fb80cf600c0cb84f78ab75f51515d916091f7.zip hdf5-c28fb80cf600c0cb84f78ab75f51515d916091f7.tar.gz hdf5-c28fb80cf600c0cb84f78ab75f51515d916091f7.tar.bz2 |
Main Getting Started page and the three HDF Resources have pages. (#2092)
HDFView is still under construction, but mostly there.
Merge the Fortran doxygen changes from develop PR, updated RM index.
Adjusted references to UG and created some TODOs for missing UG modules
Some may just need a reference back to a section of the user guide. Made
some Fortran doxygen changes for overall consistency.
Diffstat (limited to 'fortran/src/H5Sff.F90')
-rw-r--r-- | fortran/src/H5Sff.F90 | 1486 |
1 files changed, 472 insertions, 1014 deletions
diff --git a/fortran/src/H5Sff.F90 b/fortran/src/H5Sff.F90 index 07c7018..8532694 100644 --- a/fortran/src/H5Sff.F90 +++ b/fortran/src/H5Sff.F90 @@ -1,13 +1,13 @@ -!****h* ROBODoc/H5S -! -! NAME -! MODULE H5S -! -! FILE -! fortran/src/H5Sff.F90 -! -! PURPOSE -! This file contains Fortran interfaces for H5S functions. +!> @defgroup FH5S Fortran Dataspace (H5S) Interface +!! +!! @see H5S, C-API +!! +!! @see @ref H5S_UG, User Guide +!! + +!> @ingroup FH5S +!! +!! @brief This module contains Fortran interfaces for H5S functions. ! ! COPYRIGHT ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -36,40 +36,23 @@ ! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. ! This is needed for Windows based operating systems. ! -!***** MODULE H5S USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_CHAR, C_INT USE H5GLOBAL CONTAINS -! -!****s* H5S/h5screate_simple_f -! -! NAME -! h5screate_simple_f -! -! PURPOSE -! Creates a new simple data space and opens it for access . -! -! INPUTS -! rank - number of dimensions -! dims - an array of the size of each dimension -! OUTPUTS -! space_id - dataspace identifier -! hdferr - Returns 0 if successful and -1 if fails -! OPTIONAL PARAMETERS -! maxdims - an array of the maximum size of each dimension -! -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Creates a new simple data space and opens it for access. +!! +!! \param rank Number of dimensions. +!! \param dims An array of the size of each dimension. +!! \param space_id Dataspace identifier. +!! \param hdferr \fortran_error +!! \param maxdims An array of the maximum size of each dimension. +!! SUBROUTINE h5screate_simple_f(rank, dims, space_id, hdferr, maxdims) IMPLICIT NONE @@ -78,7 +61,6 @@ CONTAINS INTEGER(HID_T), INTENT(OUT) :: space_id INTEGER, INTENT(OUT) :: hdferr INTEGER(HSIZE_T), OPTIONAL, INTENT(IN) :: maxdims(rank) -!***** INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:) :: f_maxdims INTERFACE @@ -107,34 +89,18 @@ CONTAINS END SUBROUTINE h5screate_simple_f -! -!****s* H5S/h5sclose_f -! -! NAME -! h5sclose_f -! -! PURPOSE -! Releases and terminates access to a dataspace. -! -! INPUTS -! space_id - identifier of dataspace to release -! OUTPUTS -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Releases and terminates access to a dataspace. +!! +!! \param space_id Identifier of dataspace to release. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sclose_f(space_id, hdferr) IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier - INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER, INTENT(OUT) :: hdferr INTERFACE INTEGER FUNCTION h5sclose_c(space_id) BIND(C,NAME='h5sclose_c') IMPORT :: HID_T @@ -147,44 +113,23 @@ CONTAINS END SUBROUTINE h5sclose_f -! -!****s* H5S/h5screate_f -! -! NAME -! h5screate_f -! -! PURPOSE -! Creates a new dataspace of a specified type. -! -! INPUTS -! classtype - The type of the dataspace to be created -! Possible values are: -! H5S_SCALAR_F -! H5S_SIMPLE_F -! H5S_NULL_F -! OUTPUTS -! space_id - Dataspace identifier -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! NOTES -! - -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Creates a new dataspace of a specified type. +!! +!! \param classtype The type of the dataspace to be created. Possible values are: +!! \li H5S_SCALAR_F +!! \li H5S_SIMPLE_F +!! \li H5S_NULL_F +!! \param space_id Dataspace identifier. +!! \param hdferr \fortran_error +!! SUBROUTINE h5screate_f(classtype, space_id, hdferr) IMPLICIT NONE INTEGER, INTENT(IN) :: classtype INTEGER(HID_T), INTENT(OUT) :: space_id INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5screate_c(classtype, space_id) BIND(C,NAME='h5screate_c') IMPORT :: HID_T @@ -198,40 +143,20 @@ CONTAINS END SUBROUTINE h5screate_f -! -!****s* H5S/h5scopy_f -! -! NAME -! h5scopy_f -! -! PURPOSE -! Creates an exact copy of a dataspace. -! -! INPUTS -! space_id - dataspace identifier -! OUTPUTS -! new_space_id - identifier of dataspace's copy -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! NOTES -! - -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Creates an exact copy of a dataspace. +!! +!! \param space_id Dataspace identifier. +!! \param new_space_id Identifier of dataspace's copy. +!! \param hdferr \fortran_error +!! SUBROUTINE h5scopy_f(space_id, new_space_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id INTEGER(HID_T), INTENT(OUT) :: new_space_id INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5scopy_c(space_id, new_space_id) BIND(C,NAME='h5scopy_c') IMPORT :: HID_T @@ -245,37 +170,20 @@ CONTAINS END SUBROUTINE h5scopy_f -! -!****s* H5S/h5sget_select_hyper_nblocks_f -! -! NAME -! h5sget_select_hyper_nblocks_f -! -! PURPOSE -! Get number of hyperslab blocks. -! -! INPUTS -! space_id - dataspace identifier -! OUTPUTS -! num_blocks - number of hyperslab blocks in the current -! hyperslab selection -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Get number of hyperslab blocks. +!! +!! \param space_id Dataspace identifier. +!! \param num_blocks Number of hyperslab blocks in the current hyperslab selection. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sget_select_hyper_nblocks_f(space_id, num_blocks, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id INTEGER(HSSIZE_T), INTENT(OUT) :: num_blocks INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sget_select_hyper_nblocks_c (space_id, num_blocks) & BIND(C,NAME='h5sget_select_hyper_nblocks_c') @@ -290,32 +198,17 @@ CONTAINS END SUBROUTINE h5sget_select_hyper_nblocks_f -! -!****s* H5S/h5sget_select_hyper_blocklist_f -! -! NAME -! h5sget_select_hyper_blocklist_f -! -! PURPOSE -! Gets the list of hyperslab blocks currently selected. -! -! INPUTS -! space_id - dataspace identifier -! startblock - hyperslab block to start with -! num_blocks - number of blocks to get -! OUTPUTS -! buf - buffer to hold block list -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Gets the list of hyperslab blocks currently selected. +!! +!! \param space_id Dataspace identifier. +!! \param startblock Hyperslab block to start with. +!! \param num_blocks Number of blocks to get. +!! \param buf Buffer to hold block list. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sget_select_hyper_blocklist_f(space_id, startblock, & num_blocks, buf, hdferr) IMPLICIT NONE @@ -324,7 +217,6 @@ CONTAINS INTEGER(HSIZE_T), INTENT(IN) :: num_blocks INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sget_select_hyper_blocklist_c(space_id, startblock, & num_blocks, buf ) BIND(C,NAME='h5sget_select_hyper_blocklist_c') @@ -341,42 +233,22 @@ CONTAINS END SUBROUTINE h5sget_select_hyper_blocklist_f -! -!****s* H5S/h5sget_select_bounds_f -! -! NAME -! h5sget_select_bounds_f -! -! PURPOSE -! Gets the bounding box containing the current selection. -! -! INPUTS -! space_id - dataspace identifier -! -! OUTPUTS -! start - starting coordinates of bounding box -! end - ending coordinates of bounding box -! i.e., the coordinates of the diagonally opposite corner -! hdferr - Returns 0 if successful and -1 if fails -! OPTIONAL PARAMETERS -! NONE -! -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Gets the bounding box containing the current selection. +!! +!! \param space_id Dataspace identifier. +!! \param start Starting coordinates of bounding box. +!! \param end Ending coordinates of bounding box, i.e., the coordinates of the diagonally opposite corner. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sget_select_bounds_f(space_id, start, END, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: start INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: END INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sget_select_bounds_c(space_id, start, end) & BIND(C,NAME='h5sget_select_bounds_c') @@ -392,37 +264,20 @@ CONTAINS END SUBROUTINE h5sget_select_bounds_f -! -!****s* H5S/h5sget_select_elem_npoints_f -! -! NAME -! h5sget_select_elem_npoints_f -! -! PURPOSE -! Gets the number of element points in the current selection -! -! INPUTS -! space_id - dataspace identifier -! OUTPUTS -! num_points - number of element points in the current -! dataspace selection -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Gets the number of element points in the current selection +!! +!! \param space_id Dataspace identifier. +!! \param num_points Number of element points in the current dataspace selection +!! \param hdferr \fortran_error +!! SUBROUTINE h5sget_select_elem_npoints_f(space_id, num_points, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id INTEGER(HSSIZE_T), INTENT(OUT) :: num_points INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sget_select_elem_npoints_c (space_id, num_points) BIND(C,NAME='h5sget_select_elem_npoints_c') IMPORT :: HID_T, HSSIZE_T @@ -435,32 +290,17 @@ CONTAINS END SUBROUTINE h5sget_select_elem_npoints_f -! -!****s* H5S/h5sget_select_elem_pointlist_f -! -! NAME -! h5sget_select_elem_pointlist_f -! -! PURPOSE -! Gets the list of element points currently selected. -! -! INPUTS -! space_id - dataspace identifier -! startpoint - element point to start with -! num_points - number of element points to get -! OUTPUTS -! buf - buffer with element points selected -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Gets the list of element points currently selected. +!! +!! \param space_id Dataspace identifier. +!! \param startpoint Element point to start with. +!! \param num_points Number of element points to get. +!! \param buf Buffer with element points selected. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sget_select_elem_pointlist_f(space_id, startpoint, & num_points, buf, hdferr) IMPLICIT NONE @@ -469,7 +309,6 @@ CONTAINS INTEGER(HSIZE_T), INTENT(IN) :: num_points INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sget_select_elem_pointlist_c(space_id, startpoint, & num_points, buf ) BIND(C,NAME='h5sget_select_elem_pointlist_c') @@ -487,38 +326,22 @@ CONTAINS END SUBROUTINE h5sget_select_elem_pointlist_f -! -!****s* H5S/h5sselect_elements_f -! -! NAME -! h5sselect_elements_f -! -! PURPOSE -! Selects elements to be included in the selection for -! a dataspace -! -! INPUTS -! space_id - dataspace identifier -! operator - flag, valid values are: -! H5S_SELECT_SET_F -! H5S_SELECT_APPEND_F -! H5S_SELECT_PREPEND_F -! rank - number of dataspace dimensions -! num_elements - number of elements to be selected -! coord - 2D (rank x num_elements) array with the -! elements coordinates ( 1-based); in C the -! array is stored in 2D as (num_element x rank) -! OUTPUTS -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Selects elements to be included in the selection for a dataspace +!! +!! \param space_id Dataspace identifier. +!! \param operator Flag, valid values are: +!! \li H5S_SELECT_SET_F +!! \li H5S_SELECT_APPEND_F +!! \li H5S_SELECT_PREPEND_F +!! \param rank Number of dataspace dimensions. +!! \param num_elements Number of elements to be selected. +!! \param coord 2D (rank x num_elements) array with the elements coordinates ( 1-based); in C the +!! array is stored in 2D as (num_element x rank). +!! \param hdferr \fortran_error +!! SUBROUTINE h5sselect_elements_f(space_id, OPERATOR, rank, & num_elements, coord, hdferr) IMPLICIT NONE @@ -528,7 +351,6 @@ CONTAINS INTEGER(SIZE_T), INTENT(IN) :: num_elements INTEGER(HSIZE_T), INTENT(IN) , DIMENSION(rank,num_elements) :: coord INTEGER, INTENT(OUT) :: hdferr -!***** INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:,:) :: c_coord INTEGER :: error, i @@ -568,35 +390,18 @@ CONTAINS END SUBROUTINE h5sselect_elements_f -! -!****s* H5S/h5sselect_all_f -! -! NAME -! h5sselect_all_f -! -! PURPOSE -! Selects the entire dataspace. -! -! INPUTS -! space_id - Identifier for the dataspace in which -! selection being made -! OUTPUTS -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Selects the entire dataspace. +!! +!! \param space_id Identifier for the dataspace in which selection being made. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sselect_all_f(space_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sselect_all_c(space_id) BIND(C,NAME='h5sselect_all_c') IMPORT :: HID_T @@ -609,36 +414,18 @@ CONTAINS END SUBROUTINE h5sselect_all_f -! -!****s* H5S/h5sselect_none_f -! -! NAME -! h5sselect_none_f -! -! PURPOSE -! Resets the selection region to include no elements. -! -! INPUTS -! space_id - the identifier for the dataspace in which -! the selection is being reset. -! OUTPUTS -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Resets the selection region to include no elements. +!! +!! \param space_id The identifier for the dataspace in which the selection is being reset. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sselect_none_f(space_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sselect_none_c(space_id) BIND(C,NAME='h5sselect_none_c') IMPORT :: HID_T @@ -651,40 +438,20 @@ CONTAINS END SUBROUTINE h5sselect_none_f -! -!****s* H5S/h5sselect_valid_f -! -! NAME -! h5sselect_valid_f -! -! PURPOSE -! Verifies that the selection is within the extent of -! the dataspace. -! -! INPUTS -! space_id - identifier for the dataspace for which -! selection is verified -! OUTPUTS -! status - TRUE if the selection is contained within -! the extent, FALSE otherwise. -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Verifies that the selection is within the extent of the dataspace. +!! +!! \param space_id Identifier for the dataspace for whichselection is verified +!! \param status TRUE if the selection is contained within the extent, FALSE otherwise. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sselect_valid_f(space_id, status, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id LOGICAL, INTENT(OUT) :: status INTEGER, INTENT(OUT) :: hdferr -!***** INTEGER :: flag ! "TRUE/FALSE/ERROR" flag from C routine INTERFACE @@ -702,37 +469,20 @@ CONTAINS END SUBROUTINE h5sselect_valid_f -! -!****s* H5S/h5sget_simple_extent_npoints_f -! -! NAME -! h5sget_simple_extent_npoints_f -! -! PURPOSE -! Determines the number of elements in a dataspace. -! -! INPUTS -! space_id - dataspace identifier -! OUTPUTS -! npoints - number of elements in the dataspace -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Determines the number of elements in a dataspace. +!! +!! \param space_id Dataspace identifier. +!! \param npoints Number of elements in the dataspace. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sget_simple_extent_npoints_f(space_id, npoints, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id INTEGER(HSIZE_T), INTENT(OUT) :: npoints INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sget_simple_extent_npoints_c( space_id, npoints) BIND(C,NAME='h5sget_simple_extent_npoints_c') IMPORT :: HID_T, HSIZE_T @@ -746,35 +496,20 @@ CONTAINS END SUBROUTINE h5sget_simple_extent_npoints_f -! -!****s* H5S/h5sget_select_npoints_f -! -! NAME -! h5sget_select_npoints_f -! -! PURPOSE -! Determines the number of elements in a dataspace selection. -! -! INPUTS -! space_id - dataspace identifier -! OUTPUTS -! npoints - number of points in the dataspace selection -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Determines the number of elements in a dataspace selection. +!! +!! \param space_id Dataspace identifier. +!! \param npoints Number of points in the dataspace selection. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sget_select_npoints_f(space_id, npoints, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id INTEGER(HSSIZE_T), INTENT(OUT) :: npoints INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sget_select_npoints_c(space_id, npoints) BIND(C,NAME='h5sget_select_npoints_c') IMPORT :: HID_T, HSSIZE_T @@ -788,36 +523,20 @@ CONTAINS END SUBROUTINE h5sget_select_npoints_f -! -!****s* H5S/h5sget_simple_extent_ndims_f -! -! NAME -! h5sget_simple_extent_ndims_f -! -! PURPOSE -! Determines the dimensionality of a dataspace -! -! INPUTS -! space_id - dataspace identifier -! OUTPUTS -! rank - number of dataspace dimensions -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Determines the dimensionality of a dataspace +!! +!! \param space_id Dataspace identifier. +!! \param rank Number of dataspace dimensions. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sget_simple_extent_ndims_f(space_id, rank, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id INTEGER, INTENT(OUT) :: rank INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sget_simple_extent_ndims_c(space_id, rank) BIND(C,NAME='h5sget_simple_extent_ndims_c') IMPORT :: HID_T @@ -830,40 +549,22 @@ CONTAINS hdferr = h5sget_simple_extent_ndims_c(space_id, rank) END SUBROUTINE h5sget_simple_extent_ndims_f -! -!****s* H5S/h5sget_simple_extent_dims_f -! -! NAME -! h5sget_simple_extent_dims_f -! -! PURPOSE -! Retrieves dataspace dimension size and maximum size. -! -! INPUTS -! space_id - dataspace identifier -! -! OUTPUTS -! dims - array to store size of each dimension -! maxdims - array to store maximum size of each dimension -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Retrieves dataspace dimension size and maximum size. +!! +!! \param space_id Dataspace identifier. +!! \param dims Array to store size of each dimension. +!! \param maxdims Array to store maximum size of each dimension. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sget_simple_extent_dims_f(space_id, dims, maxdims, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: dims INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: maxdims INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sget_simple_extent_dims_c(space_id, dims, maxdims) BIND(C,NAME='h5sget_simple_extent_dims_c') IMPORT :: HID_T, HSIZE_T @@ -878,40 +579,24 @@ CONTAINS END SUBROUTINE h5sget_simple_extent_dims_f -! -!****s* H5S/h5sget_simple_extent_type_f -! -! NAME -! h5sget_simple_extent_type_f -! -! PURPOSE -! Determine the current class of a dataspace -! -! INPUTS -! space_id - dataspace identifier -! OUTPUTS -! classtype - class type, possible values are: -! H5S_NO_CLASS_F -! H5S_SCALAR_F -! H5S_SIMPLE_F -! H5S_NULL_F -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Determine the current class of a dataspace +!! +!! \param space_id Dataspace identifier. +!! \param classtype Class type, possible values are: +!! \li H5S_NO_CLASS_F +!! \li H5S_SCALAR_F +!! \li H5S_SIMPLE_F +!! \li H5S_NULL_F +!! \param hdferr \fortran_error +!! SUBROUTINE h5sget_simple_extent_type_f(space_id, classtype, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id INTEGER, INTENT(OUT) :: classtype INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sget_simple_extent_type_c(space_id, classtype) BIND(C,NAME='h5sget_simple_extent_type_c') IMPORT :: HID_T @@ -925,32 +610,17 @@ CONTAINS END SUBROUTINE h5sget_simple_extent_type_f ! -!****s* H5S/h5sset_extent_simple_f -! -! NAME -! h5sset_extent_simple_f -! -! PURPOSE -! Sets or resets the size of an existing dataspace. -! -! INPUTS -! space_id - dataspace identifier -! rank - dataspace number of dimensions -! current_size - array with the new sizes of dimensions -! maximum_size - array with the new maximum sizes of -! dimensions -! OUTPUTS -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Sets or resets the size of an existing dataspace. +!! +!! \param space_id Dataspace identifier. +!! \param rank Dataspace number of dimensions. +!! \param current_size Array with the new sizes of dimensions. +!! \param maximum_size Array with the new maximum sizes of dimensions. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sset_extent_simple_f(space_id, rank, current_size, & maximum_size, hdferr) IMPLICIT NONE @@ -959,7 +629,6 @@ CONTAINS INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: current_size INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: maximum_size INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sset_extent_simple_c(space_id, rank, & current_size, maximum_size) BIND(C,NAME='h5sset_extent_simple_c') @@ -975,37 +644,20 @@ CONTAINS maximum_size) END SUBROUTINE h5sset_extent_simple_f -! -!****s* H5S/h5sis_simple_f -! -! NAME -! h5sis_simple_f -! -! PURPOSE -! Determines whether a dataspace is a simple dataspace. -! -! INPUTS -! space_id - dataspace identifier -! OUTPUTS -! status - flag to indicate if dataspace -! is simple or not (TRUE or FALSE) -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Determines whether a dataspace is a simple dataspace. +!! +!! \param space_id Dataspace identifier. +!! \param status Flag to indicate if dataspace is simple or not (TRUE or FALSE). +!! \param hdferr \fortran_error +!! SUBROUTINE h5sis_simple_f(space_id, status, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id LOGICAL, INTENT(OUT) :: status INTEGER, INTENT(OUT) :: hdferr -!***** INTEGER :: flag ! "TRUE/FALSE/ERROR from C" INTERFACE @@ -1023,40 +675,20 @@ CONTAINS END SUBROUTINE h5sis_simple_f -! -!****s* H5S/h5soffset_simple_f -! -! NAME -! h5soffset_simple_f -! -! PURPOSE -! Sets the offset of a simple dataspace. -! -! INPUTS -! space_id - dataspace identifier -! offset - the offset at which to position the -! selection -! OUTPUTS -! hdferr - Returns 0 if successful and -1 if fails -! OPTIONAL PARAMETERS -! NONE -! -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Sets the offset of a simple dataspace. +!! +!! \param space_id Dataspace identifier. +!! \param offset The offset at which to position the selection. +!! \param hdferr \fortran_error +!! SUBROUTINE h5soffset_simple_f(space_id, offset, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id INTEGER(HSSIZE_T), DIMENSION(*), INTENT(IN) :: offset INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5soffset_simple_c(space_id, offset) BIND(C,NAME='h5soffset_simple_c') IMPORT :: HID_T, HSSIZE_T @@ -1070,44 +702,20 @@ CONTAINS END SUBROUTINE h5soffset_simple_f -! -!****s* H5S/h5sextent_copy_f -! -! NAME -! h5sextent_copy_f -! -! PURPOSE -! Copies the extent of a dataspace. -! -! INPUTS -! dest_space_id - the identifier for the dataspace to which -! the extent is copied -! source_space_id - the identifier for the dataspace from -! which the extent is copied -! OUTPUTS -! hdferr - Returns 0 if successful and -1 if fails -! OPTIONAL PARAMETERS -! NONE -! -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! NOTES -! - -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Copies the extent of a dataspace. +!! +!! \param dest_space_id The identifier for the dataspace to which the extent is copied. +!! \param source_space_id The identifier for the dataspace from which the extent is copied. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sextent_copy_f(dest_space_id, source_space_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dest_space_id INTEGER(HID_T), INTENT(IN) :: source_space_id - INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** + INTEGER, INTENT(OUT) :: hdferr INTERFACE INTEGER FUNCTION h5sextent_copy_c(dest_space_id, source_space_id) BIND(C,NAME='h5sextent_copy_c') IMPORT :: HID_T @@ -1121,34 +729,18 @@ CONTAINS END SUBROUTINE h5sextent_copy_f -! -!****s* H5S/h5sset_extent_none_f -! -! NAME -! h5sset_extent_none_f -! -! PURPOSE -! Removes the extent from a dataspace. -! -! INPUTS -! space_id - dataspace identifier -! OUTPUTS -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Removes the extent from a dataspace. +!! +!! \param space_id Dataspace identifier. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sset_extent_none_f(space_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sset_extent_none_c(space_id) BIND(C,NAME='h5sset_extent_none_c') IMPORT :: HID_T @@ -1160,39 +752,22 @@ CONTAINS hdferr = h5sset_extent_none_c(space_id) END SUBROUTINE h5sset_extent_none_f -! -!****s* H5S/h5sselect_hyperslab_f -! -! NAME -! h5sselect_hyperslab_f -! -! PURPOSE -! Selects a hyperslab region to add to the current selected -! region -! -! INPUTS -! space_id - dataspace identifier -! operator - flag, valid values are: -! H5S_SELECT_SET_F -! H5S_SELECT_OR_F -! start - array with hyperslab offsets -! count - number of blocks included in the hyperslab -! OUTPUTS -! hdferr - Returns 0 if successful and -1 if fails -! OPTIONAL PARAMETERS -! stride - array with hyperslab strides -! block - array with hyperslab block sizes -! -! AUTHOR -! Elena Pourmal -! August 12, 1999 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Selects a hyperslab region to add to the current selected +!! region +!! +!! \param space_id Dataspace identifier. +!! \param operator Flag, valid values are: +!! \li H5S_SELECT_SET_F +!! \li H5S_SELECT_OR_F +!! \param start Array with hyperslab offsets. +!! \param count Number of blocks included in the hyperslab. +!! \param hdferr \fortran_error +!! \param stride Array with hyperslab strides. +!! \param block Array with hyperslab block sizes. +!! SUBROUTINE h5sselect_hyperslab_f(space_id, OPERATOR, start, count, & hdferr, stride, BLOCK) IMPLICIT NONE @@ -1203,7 +778,6 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr INTEGER(HSIZE_T), DIMENSION(:), OPTIONAL, INTENT(IN) :: stride INTEGER(HSIZE_T), DIMENSION(:), OPTIONAL, INTENT(IN) :: BLOCK -!***** INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_block INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_stride INTEGER :: rank @@ -1276,79 +850,62 @@ CONTAINS END SUBROUTINE h5sselect_hyperslab_f ! !$! -! !$!****s* H5S/h5scombine_hyperslab_f -! !$! -! !$! NAME -! !$! h5scombine_hyperslab_f -! !$! -! !$! PURPOSE -! !$! Combine a hyperslab selection with the current -! !$! selection for a dataspace -! !$! -! !$! INPUTS -! !$! space_id - dataspace of selection to use -! !$! operator - flag, valid values are: -! !$! H5S_SELECT_NOOP_F -! !$! H5S_SELECT_SET_F -! !$! H5S_SELECT_OR_F -! !$! H5S_SELECT_AND_F -! !$! H5S_SELECT_XOR_F -! !$! H5S_SELECT_NOTB_F -! !$! H5S_SELECT_NOTA_F -! !$! H5S_SELECT_APPEND_F -! !$! H5S_SELECT_PREPEND_F -! !$! start - array with hyperslab offsets -! !$! count - number of blocks included in the -! !$! hyperslab -! !$! OUTPUTS -! !$! hyper_id - identifier for the new hyperslab -! !$! hdferr: - error code -! !$! Success: 0 -! !$! Failure: -1 -! !$! OPTIONAL PARAMETERS -! !$! stride - array with hyperslab strides -! !$! block - array with hyperslab block sizes -! !$! -! !$! AUTHOR -! !$! Elena Pourmal -! !$! October 7, 2002 -! !$! -! !$! HISTORY -! !$! -! !$! -! !$! NOTES -! !$! Commented out until 1.6 ? 10/08/2002 -! !$! -! !$! SOURCE +!> +!! !$! +!! !$! NAME +!! !$! h5scombine_hyperslab_f +!! !$! +!! !$! PURPOSE +!! !$! Combine a hyperslab selection with the current +!! !$! selection for a dataspace +!! !$! +!! !$! INPUTS +!! !$! space_id - dataspace of selection to use +!! !$! operator - flag, valid values are: +!! !$! H5S_SELECT_NOOP_F +!! !$! H5S_SELECT_SET_F +!! !$! H5S_SELECT_OR_F +!! !$! H5S_SELECT_AND_F +!! !$! H5S_SELECT_XOR_F +!! !$! H5S_SELECT_NOTB_F +!! !$! H5S_SELECT_NOTA_F +!! !$! H5S_SELECT_APPEND_F +!! !$! H5S_SELECT_PREPEND_F +!! !$! start - array with hyperslab offsets +!! !$! count - number of blocks included in the +!! !$! hyperslab +!! !$! OUTPUTS +!! !$! hyper_id - identifier for the new hyperslab +!! !$! hdferr: - error code +!! !$! Success: 0 +!! !$! Failure: -1 +!! !$! OPTIONAL PARAMETERS +!! !$! stride - array with hyperslab strides +!! !$! block - array with hyperslab block sizes +!! !$! +!! !$! AUTHOR +!! !$! Elena Pourmal +!! !$! October 7, 2002 +!! !$! +!! !$! HISTORY +!! !$! +!! !$! +!! !$! NOTES +!! !$! Commented out until 1.6 ? 10/08/2002 +!! !$! +!! !$! SOURCE ! SUBROUTINE h5scombine_hyperslab_f(space_id, operator, start, count, & ! hyper_id, hdferr, stride, block) ! IMPLICIT NONE -! INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier -! INTEGER, INTENT(IN) :: operator ! Flag, valid values are: - ! H5S_SELECT_NOOP_F - ! H5S_SELECT_SET_F - ! H5S_SELECT_OR_F - ! H5S_SELECT_AND_F - ! H5S_SELECT_XOR_F - ! H5S_SELECT_NOTB_F - ! H5S_SELECT_NOTA_F - ! H5S_SELECT_APPEND_F - ! H5S_SELECT_PREPEND_F + + ! H5S_SELECT_AND_F + ! H5S_SELECT_XOR_F + ! H5S_SELECT_NOTB_F + ! H5S_SELECT_NOTA_F + ! H5S_SELECT_APPEND_F + ! H5S_SELECT_PREPEND_F ! -! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: start - ! Starting coordinates of the hyperslab -! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: count - ! Number of blocks to select - ! from dataspace -! INTEGER(HID_T), INTENT(OUT) :: hyper_id ! New hyperslab identifier -! INTEGER, INTENT(OUT) :: hdferr ! Error code -! INTEGER(HSIZE_T), DIMENSION(:), OPTIONAL, INTENT(IN) :: stride - ! Array of how many elements to move - ! in each direction -! INTEGER(HSIZE_T), DIMENSION(:), OPTIONAL, INTENT(IN) :: block - ! Sizes of element block -! INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_block -! INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_stride + ! INTEGER :: rank ! INTEGER :: error1, error2 @@ -1359,15 +916,7 @@ CONTAINS ! !DEC$IF DEFINED(HDF5F90_WINDOWS) ! !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SCOMBINE_HYPERSLAB_C'::h5scombine_hyperslab_c ! !DEC$ENDIF -! INTEGER(HID_T), INTENT(IN) :: space_id -! INTEGER, INTENT(IN) :: operator -! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: start -! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: count -! INTEGER(HSIZE_T), DIMENSION(*), OPTIONAL, INTENT(IN) :: stride -! INTEGER(HSIZE_T), DIMENSION(*), OPTIONAL, INTENT(IN) :: block -! INTEGER(HID_T), INTENT(OUT) :: hyper_id -! END FUNCTION h5scombine_hyperslab_c -! END INTERFACE + ! if (present(stride).and. present(block)) then ! hdferr = h5scombine_hyperslab_c(space_id, operator, start, count, & @@ -1423,78 +972,64 @@ CONTAINS ! END SUBROUTINE h5scombine_hyperslab_f ! !$! -! !$!****s* H5S/ -! !$! -! !$! NAME -! !$! h5scombine_select_f -! !$! -! !$! PURPOSE -! !$! Combine two hyperslab selections with an operation -! !$! and return a dataspace with resulting selection. -! !$! -! !$! INPUTS -! !$! space1_id - dataspace of selection to use -! !$! operator - flag, valid values are: -! !$! H5S_SELECT_NOOP_F -! !$! H5S_SELECT_SET_F -! !$! H5S_SELECT_OR_F -! !$! H5S_SELECT_AND_F -! !$! H5S_SELECT_XOR_F -! !$! H5S_SELECT_NOTB_F -! !$! H5S_SELECT_NOTA_F -! !$! H5S_SELECT_APPEND_F -! !$! H5S_SELECT_PREPEND_F -! !$! space2_id - dataspace of selection to use -! !$! OUTPUTS -! !$! ds_id - idataspace identifier with the new selection -! !$! hdferr: - error code -! !$! Success: 0 -! !$! Failure: -1 -! !$! OPTIONAL PARAMETERS - NONE -! !$! -! !$! AUTHOR -! !$! Elena Pourmal -! !$! October 7, 2002 -! !$! -! !$! HISTORY -! !$! -! !$! -! !$! NOTES commented out until 1.6 release(?) 10/08/2002 -! !$! - -! ! SOURCE +!> +!! !$! +!! !$! NAME +!! !$! h5scombine_select_f +!! !$! +!! !$! PURPOSE +!! !$! Combine two hyperslab selections with an operation +!! !$! and return a dataspace with resulting selection. +!! !$! +!! !$! INPUTS +!! !$! space1_id - dataspace of selection to use +!! !$! operator - flag, valid values are: +!! !$! H5S_SELECT_NOOP_F +!! !$! H5S_SELECT_SET_F +!! !$! H5S_SELECT_OR_F +!! !$! H5S_SELECT_AND_F +!! !$! H5S_SELECT_XOR_F +!! !$! H5S_SELECT_NOTB_F +!! !$! H5S_SELECT_NOTA_F +!! !$! H5S_SELECT_APPEND_F +!! !$! H5S_SELECT_PREPEND_F +!! !$! space2_id - dataspace of selection to use +!! !$! OUTPUTS +!! !$! ds_id - idataspace identifier with the new selection +!! !$! hdferr: - error code +!! !$! Success: 0 +!! !$! Failure: -1 +!! !$! OPTIONAL PARAMETERS - NONE +!! !$! +!! !$! AUTHOR +!! !$! Elena Pourmal +!! !$! October 7, 2002 +!! !$! +!! !$! HISTORY +!! !$! +!! !$! +!! !$! NOTES commented out until 1.6 release(?) 10/08/2002 +!! !$! +! +!! ! SOURCE ! !$ SUBROUTINE h5scombine_select_f(space1_id, operator, space2_id, & ! ds_id, hdferr) ! IMPLICIT NONE -! INTEGER(HID_T), INTENT(IN) :: space1_id ! First dataspace identifier -! INTEGER(HID_T), INTENT(IN) :: space2_id ! Second dataspace identifier -! INTEGER, INTENT(IN) :: operator ! Flag, valid values are: - ! H5S_SELECT_NOOP_F - ! H5S_SELECT_SET_F - ! H5S_SELECT_OR_F - ! H5S_SELECT_AND_F - ! H5S_SELECT_XOR_F - ! H5S_SELECT_NOTB_F - ! H5S_SELECT_NOTA_F - ! H5S_SELECT_APPEND_F - ! H5S_SELECT_PREPEND_F + + ! H5S_SELECT_AND_F + ! H5S_SELECT_XOR_F + ! H5S_SELECT_NOTB_F + ! H5S_SELECT_NOTA_F + ! H5S_SELECT_APPEND_F + ! H5S_SELECT_PREPEND_F ! -! INTEGER(HID_T), INTENT(OUT) :: ds_id ! New dataspace identifier -! INTEGER, INTENT(OUT) :: hdferr ! Error code -! -! INTERFACE -! INTEGER FUNCTION h5scombine_select_c(space1_id, operator, & + ! space2_id, ds_id) ! USE H5GLOBAL ! !DEC$IF DEFINED(HDF5F90_WINDOWS) ! !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SCOMBINE_SELECT_C'::h5scombine_select_c ! !DEC$ENDIF -! INTEGER(HID_T), INTENT(IN) :: space1_id -! INTEGER(HID_T), INTENT(IN) :: space2_id -! INTEGER, INTENT(IN) :: operator -! INTEGER(HID_T), INTENT(OUT) :: ds_id -! END FUNCTION h5scombine_select_c -! END INTERFACE + ! hdferr = h5scombine_select_c(space1_id, operator, space2_id, & ! ds_id) @@ -1503,113 +1038,90 @@ CONTAINS ! END SUBROUTINE h5scombine_select_f ! !$! -! !$!****s* H5S/ -! !$! -! !$! NAME -! !$! h5smodify_select_f -! !$! -! !$! PURPOSE -! !$! Refine a hyperslab selection with an operation -! !$! using second hyperslab -! !$! -! !$! INPUTS -! !$! space1_id - dataspace of selection to modify -! !$! operator - flag, valid values are: -! !$! H5S_SELECT_NOOP_F -! !$! H5S_SELECT_SET_F -! !$! H5S_SELECT_OR_F -! !$! H5S_SELECT_AND_F -! !$! H5S_SELECT_XOR_F -! !$! H5S_SELECT_NOTB_F -! !$! H5S_SELECT_NOTA_F -! !$! H5S_SELECT_APPEND_F -! !$! H5S_SELECT_PREPEND_F -! !$! space2_id - dataspace of selection to use -! !$! -! !$! OUTPUTS -! !$! hdferr: - error code -! !$! Success: 0 -! !$! Failure: -1 -! !$! OPTIONAL PARAMETERS - NONE -! !$! -! !$! AUTHOR -! !$! Elena Pourmal -! !$! October 7, 2002 -! !$! -! !$! HISTORY -! !$! -! !$! -! !$! NOTESCommented out until 1.6 release(?) 10/08/2002 EIP -! !$! - -! ! SOURCE +!> +!! !$! +!! !$! NAME +!! !$! h5smodify_select_f +!! !$! +!! !$! PURPOSE +!! !$! Refine a hyperslab selection with an operation +!! !$! using second hyperslab +!! !$! +!! !$! INPUTS +!! !$! space1_id - dataspace of selection to modify +!! !$! operator - flag, valid values are: +!! !$! H5S_SELECT_NOOP_F +!! !$! H5S_SELECT_SET_F +!! !$! H5S_SELECT_OR_F +!! !$! H5S_SELECT_AND_F +!! !$! H5S_SELECT_XOR_F +!! !$! H5S_SELECT_NOTB_F +!! !$! H5S_SELECT_NOTA_F +!! !$! H5S_SELECT_APPEND_F +!! !$! H5S_SELECT_PREPEND_F +!! !$! space2_id - dataspace of selection to use +!! !$! +!! !$! OUTPUTS +!! !$! hdferr: - error code +!! !$! Success: 0 +!! !$! Failure: -1 +!! !$! OPTIONAL PARAMETERS - NONE +!! !$! +!! !$! AUTHOR +!! !$! Elena Pourmal +!! !$! October 7, 2002 +!! !$! +!! !$! HISTORY +!! !$! +!! !$! +!! !$! NOTESCommented out until 1.6 release(?) 10/08/2002 EIP +!! !$! +! +!! ! SOURCE ! SUBROUTINE h5smodify_select_f(space1_id, operator, space2_id, & ! hdferr) ! IMPLICIT NONE -! INTEGER(HID_T), INTENT(INOUT) :: space1_id ! Dataspace identifier to - ! modify -! INTEGER(HID_T), INTENT(IN) :: space2_id ! Second dataspace identifier -! INTEGER, INTENT(IN) :: operator ! Flag, valid values are: - ! H5S_SELECT_NOOP_F - ! H5S_SELECT_SET_F - ! H5S_SELECT_OR_F - ! H5S_SELECT_AND_F - ! H5S_SELECT_XOR_F - ! H5S_SELECT_NOTB_F - ! H5S_SELECT_NOTA_F - ! H5S_SELECT_APPEND_F - ! H5S_SELECT_PREPEND_F + + ! H5S_SELECT_AND_F + ! H5S_SELECT_XOR_F + ! H5S_SELECT_NOTB_F + ! H5S_SELECT_NOTA_F + ! H5S_SELECT_APPEND_F + ! H5S_SELECT_PREPEND_F ! -! INTEGER, INTENT(OUT) :: hdferr ! Error code -! INTERFACE -! INTEGER FUNCTION h5smodify_select_c(space1_id, operator, & + ! space2_id) ! USE H5GLOBAL ! !DEC$IF DEFINED(HDF5F90_WINDOWS) ! !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SMODIFY_SELECT_C'::h5smodify_select_c ! !DEC$ENDIF -! INTEGER(HID_T), INTENT(INOUT) :: space1_id -! INTEGER(HID_T), INTENT(IN) :: space2_id -! INTEGER, INTENT(IN) :: operator -! END FUNCTION h5smodify_select_c -! END INTERFACE + ! hdferr = h5smodify_select_c(space1_id, operator, space2_id) ! return ! END SUBROUTINE h5smodify_select_f -! -!****s* H5S/h5sget_select_type_f -! -! NAME -! h5sget_select_type_f -! -! PURPOSE -! Retrieve the type of selection -! -! INPUTS -! space_id - dataspace identifier with selection -! OUTPUTS -! type - selection type flag, valid values are: -! H5S_SEL_ERROR_F -! H5S_SEL_NONE_F -! H5S_SEL_POINTS_F -! H5S_SEL_HYPERSLABS_F -! H5S_SEL_ALL_F -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! October 7, 2002 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Retrieve the type of selection +!! +!! \param space_id Dataspace identifier with selection. +!! \param type Selection type flag, valid values are: +!! \li H5S_SEL_ERROR_F +!! \li H5S_SEL_NONE_F +!! \li H5S_SEL_POINTS_F +!! \li H5S_SEL_HYPERSLABS_F +!! \li H5S_SEL_ALL_F +!! \param hdferr \fortran_error +!! SUBROUTINE h5sget_select_type_f(space_id, TYPE, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(INOUT) :: space_id INTEGER, INTENT(OUT) :: TYPE INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sget_select_type_c(space_id, TYPE) BIND(C,NAME='h5sget_select_type_c') IMPORT :: HID_T @@ -1624,37 +1136,26 @@ CONTAINS END SUBROUTINE h5sget_select_type_f -! -!****s* H5S/H5Sdecode_f -! -! NAME -! H5Sdecode_f -! -! PURPOSE -! Decode a binary object description of data space and return a new object handle. -! -! INPUTS -! buf - Buffer for the data space object to be decoded. -! obj_id - Object ID -! OUTPUTS -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! M. Scot Breitenfeld -! March 26, 2008 -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Decode a binary object description of data space and return a new object handle. +!! +!! \param buf Buffer for the data space object to be decoded. +!! \param obj_id Object ID. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sdecode_f(buf, obj_id, hdferr) IMPLICIT NONE CHARACTER(LEN=*), INTENT(IN) :: buf INTEGER(HID_T), INTENT(OUT) :: obj_id INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sdecode_c(buf, obj_id) BIND(C,NAME='h5sdecode_c') IMPORT :: C_CHAR IMPORT :: HID_T CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: buf - INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object ID + INTEGER(HID_T), INTENT(OUT) :: obj_id END FUNCTION h5sdecode_c END INTERFACE @@ -1662,34 +1163,22 @@ CONTAINS END SUBROUTINE h5sdecode_f -! -!****s* H5S/H5Sencode_f -! -! NAME -! H5Sencode_f -! -! PURPOSE -! Encode a data space object description into a binary buffer. -! -! INPUTS -! obj_id - Identifier of the object to be encoded. -! buf - Buffer for the object to be encoded into. -! nalloc - The size of the allocated buffer. -! OUTPUTS -! nalloc - The size of the buffer needed. -! hdferr - Returns 0 if successful and -1 if fails. -! -! AUTHOR -! M. Scot Breitenfeld -! March 26, 2008 -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Encode a data space object description into a binary buffer. +!! +!! \param obj_id Identifier of the object to be encoded. +!! \param buf Buffer for the object to be encoded into. +!! \param nalloc The size of the buffer needed. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sencode_f(obj_id, buf, nalloc, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: obj_id CHARACTER(LEN=*), INTENT(OUT) :: buf INTEGER(SIZE_T), INTENT(INOUT) :: nalloc INTEGER, INTENT(OUT) :: hdferr -!***** INTERFACE INTEGER FUNCTION h5sencode_c(buf, obj_id, nalloc) BIND(C,NAME='h5sencode_c') @@ -1705,32 +1194,22 @@ CONTAINS END SUBROUTINE h5sencode_f -!****s* H5S/h5sextent_equal_f -! -! NAME -! h5sextent_equal_f -! -! PURPOSE -! Determines whether two dataspace extents are equal. -! -! INPUTS -! space1_id - First dataspace identifier. -! space2_id - Second dataspace identifier. -! OUTPUTS -! Equal - .TRUE. if equal, .FALSE. if unequal. -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! M. Scot Breitenfeld -! April 2, 2008 -! -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Determines whether two dataspace extents are equal. +!! +!! \param space1_id First dataspace identifier. +!! \param space2_id Second dataspace identifier. +!! \param Equal .TRUE. if equal, .FALSE. if unequal. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sextent_equal_f(space1_id, space2_id, equal, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space1_id INTEGER(HID_T), INTENT(IN) :: space2_id LOGICAL, INTENT(OUT) :: Equal INTEGER, INTENT(OUT) :: hdferr -!***** INTEGER(HID_T) :: c_equal INTERFACE @@ -1749,28 +1228,18 @@ CONTAINS END SUBROUTINE h5sextent_equal_f -! -!****s* H5S/h5sget_regular_hyperslab_f -! -! NAME -! h5sget_regular_hyperslab_f -! -! PURPOSE -! Retrieves a regular hyperslab selection. -! -! INPUTS -! space_id - The identifier of the dataspace. -! OUTPUTS -! start - Offset of the start of the regular hyperslab. -! stride - Stride of the regular hyperslab. -! count - Number of blocks in the regular hyperslab. -! block - Size of a block in the regular hyperslab. -! hdferr - Returns 0 if successful and -1 if fails. -! -! AUTHOR -! M. Scot Breitenfeld -! January, 28 2016 -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Retrieves a regular hyperslab selection. +!! +!! \param space_id The identifier of the dataspace. +!! \param start Offset of the start of the regular hyperslab. +!! \param stride Stride of the regular hyperslab. +!! \param count Number of blocks in the regular hyperslab. +!! \param block Size of a block in the regular hyperslab. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sget_regular_hyperslab_f(space_id, start, stride, count, block, hdferr) IMPLICIT NONE @@ -1780,7 +1249,6 @@ CONTAINS INTEGER(HSIZE_T), INTENT(OUT), DIMENSION(*), TARGET :: count INTEGER(HSIZE_T), INTENT(OUT), DIMENSION(*), TARGET :: block INTEGER, INTENT(OUT) :: hdferr -!***** TYPE(C_PTR) :: start_c, stride_c, count_c, block_c INTEGER :: n @@ -1817,30 +1285,20 @@ CONTAINS END SUBROUTINE h5sget_regular_hyperslab_f -!****s* H5S/h5sis_regular_hyperslab_f -! -! NAME -! h5sis_regular_hyperslab_f -! -! PURPOSE -! Retrieves a regular hyperslab selection. -! -! INPUTS -! space_id - The identifier of the dataspace. -! OUTPUTS -! IsRegular - TRUE or FALSE for hyperslab selection if successful. -! hdferr - Returns 0 if successful and -1 if fails. -! -! AUTHOR -! M. Scot Breitenfeld -! January, 28 2016 -! SOURCE +!> +!! \ingroup FH5S +!! +!! \brief Retrieves a regular hyperslab selection. +!! +!! \param space_id The identifier of the dataspace. +!! \param IsRegular TRUE or FALSE for hyperslab selection if successful. +!! \param hdferr \fortran_error +!! SUBROUTINE h5sis_regular_hyperslab_f(space_id, IsRegular, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id LOGICAL :: IsRegular INTEGER, INTENT(OUT) :: hdferr -!***** INTEGER(C_INT) :: status INTERFACE |