The attribute interface works for single processor output and single valued attribute
This commit is contained in:
parent
d2c7b33cf6
commit
3e38c4ef8c
|
@ -60,13 +60,22 @@ module HDF5_utilities
|
||||||
module procedure HDF5_write_pInt7 !ABOVE 8 DIMENSIONS IT GIVES ERROR: THE CALL TO H5DREAD_F DOESNT WORK
|
module procedure HDF5_write_pInt7 !ABOVE 8 DIMENSIONS IT GIVES ERROR: THE CALL TO H5DREAD_F DOESNT WORK
|
||||||
|
|
||||||
end interface HDF5_write
|
end interface HDF5_write
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
!> @brief attached attributes of type char,pInt or pReal to a file/dataset/group
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
interface HDF5_attributes
|
||||||
|
module procedure HDF5_addStringAttribute
|
||||||
|
module procedure HDF5_addIntegerAttribute
|
||||||
|
module procedure HDF5_addRealAttribute
|
||||||
|
end interface HDF5_attributes
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
public :: &
|
public :: &
|
||||||
HDF5_utilities_init, &
|
HDF5_utilities_init, &
|
||||||
HDF5_openFile, &
|
HDF5_openFile, &
|
||||||
HDF5_closeFile, &
|
HDF5_closeFile, &
|
||||||
HDF5_addStringAttribute, &
|
HDF5_addStringAttribute, &
|
||||||
HDF5_addIntegerAttribute, &
|
HDF5_addIntegerAttribute, &
|
||||||
|
HDF5_addRealAttribute, &
|
||||||
HDF5_closeGroup ,&
|
HDF5_closeGroup ,&
|
||||||
HDF5_openGroup, &
|
HDF5_openGroup, &
|
||||||
HDF5_addGroup, &
|
HDF5_addGroup, &
|
||||||
|
@ -275,7 +284,7 @@ end subroutine HDF5_addStringAttribute
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief adds a StringAttribute to the results file
|
!> @brief adds a IntegerAttribute to the results file
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine HDF5_addIntegerAttribute(entity,attrLabel,attrValue)
|
subroutine HDF5_addIntegerAttribute(entity,attrLabel,attrValue)
|
||||||
|
|
||||||
|
@ -288,7 +297,7 @@ subroutine HDF5_addIntegerAttribute(entity,attrLabel,attrValue)
|
||||||
|
|
||||||
call h5screate_f(H5S_SCALAR_F,space_id,hdferr)
|
call h5screate_f(H5S_SCALAR_F,space_id,hdferr)
|
||||||
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addIntegerAttribute: h5screate_f')
|
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addIntegerAttribute: h5screate_f')
|
||||||
call h5tcopy_f(H5T_NATIVE_Integer, type_id, hdferr)
|
call h5tcopy_f(H5T_NATIVE_INTEGER, type_id, hdferr)
|
||||||
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addIntegerAttribute: h5tcopy_f')
|
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addIntegerAttribute: h5tcopy_f')
|
||||||
call h5tset_size_f(type_id, 1_HSIZE_T, hdferr)
|
call h5tset_size_f(type_id, 1_HSIZE_T, hdferr)
|
||||||
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addIntegerAttribute: h5tset_size_f')
|
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addIntegerAttribute: h5tset_size_f')
|
||||||
|
@ -305,6 +314,37 @@ subroutine HDF5_addIntegerAttribute(entity,attrLabel,attrValue)
|
||||||
|
|
||||||
end subroutine HDF5_addIntegerAttribute
|
end subroutine HDF5_addIntegerAttribute
|
||||||
|
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
!> @brief adds a Real number Attribute to the results file
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
subroutine HDF5_addRealAttribute(entity,attrLabel,attrValue)
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
integer(HID_T), intent(in) :: entity
|
||||||
|
character(len=*), intent(in) :: attrLabel
|
||||||
|
real(pReal), intent(in) :: attrValue
|
||||||
|
integer(HDF5_ERR_TYPE) :: hdferr
|
||||||
|
integer(HID_T) :: attr_id, space_id, type_id
|
||||||
|
|
||||||
|
call h5screate_f(H5S_SCALAR_F,space_id,hdferr)
|
||||||
|
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addRealAttribute: h5screate_f')
|
||||||
|
call h5tcopy_f(H5T_NATIVE_DOUBLE, type_id, hdferr)
|
||||||
|
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addRealAttribute: h5tcopy_f')
|
||||||
|
call h5tset_size_f(type_id, 8_HSIZE_T, hdferr)
|
||||||
|
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addRealAttribute: h5tset_size_f')
|
||||||
|
call h5acreate_f(entity, trim(attrLabel),type_id,space_id,attr_id,hdferr)
|
||||||
|
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addRealAttribute: h5acreate_f')
|
||||||
|
call h5awrite_f(attr_id, type_id, attrValue, int([1],HSIZE_T), hdferr)
|
||||||
|
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addRealAttribute: h5awrite_f')
|
||||||
|
call h5aclose_f(attr_id,hdferr)
|
||||||
|
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addRealAttribute: h5aclose_f')
|
||||||
|
call h5tclose_f(type_id,hdferr)
|
||||||
|
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addRealAttribute: h5tclose_f')
|
||||||
|
call h5sclose_f(space_id,hdferr)
|
||||||
|
if (hdferr < 0) call IO_error(1_pInt,ext_msg='HDF5_addRealAttribute: h5sclose_f')
|
||||||
|
|
||||||
|
end subroutine HDF5_addRealAttribute
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief set link to object in results file
|
!> @brief set link to object in results file
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
@ -2935,7 +2975,7 @@ end subroutine HDF5_write_pInt7
|
||||||
|
|
||||||
end module HDF5_Utilities
|
end module HDF5_Utilities
|
||||||
|
|
||||||
!!!!!!!!!!!!
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue