mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-21 01:04:10 +08:00
[svn-r2648]
Purpose: Reimplemented references to the objects and dataset regions. Description: Previous implementation was not portable. This implementation should work on UNIX workstations and Crays, but is very inefficient since it uses memcpy to repack Fortran buffers with references to C buffers and vice versa. Solution: I used fortran derived datatype with integer fields. h5dwrite_f and h5dread_f have extra parameter when references are written or read. This parameter describes size of the buffer that holds references. Platforms tested: J90 and Solaris 2.6 H5Pf.c Some of the functions do not exist now in the development branch. Commented those out, so one does not need to apply patch in order to build Fortran Library.
This commit is contained in:
parent
a1e44979ed
commit
02092cd24e
@ -167,6 +167,127 @@ nh5dwrite_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Name: h5dwrite_ref_obj_c
|
||||
* Purpose: Call H5Dwrite to write a dataset of object references
|
||||
* Inputs: dset_id - dataset identifier
|
||||
* mem_type_id - memory datatype identifier
|
||||
* mem_space_id - memory dataspace identifier
|
||||
* file_space_id - memory dataspace identifier
|
||||
* xfer_pr - identifier of transfer property list
|
||||
* buf - data buffer with references to the objects.
|
||||
* n - number of references to be stored.
|
||||
* Returns: 0 on success,e-1 on failure
|
||||
* Programmer: Elena Pourmal
|
||||
* Monday, July 24, 2000
|
||||
* Modifications:
|
||||
*---------------------------------------------------------------------------*/
|
||||
int_f
|
||||
nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *n)
|
||||
{
|
||||
int ret_value = -1;
|
||||
herr_t ret;
|
||||
hid_t c_dset_id;
|
||||
hid_t c_mem_type_id;
|
||||
hid_t c_mem_space_id;
|
||||
hid_t c_file_space_id;
|
||||
hid_t c_xfer_prp;
|
||||
hobj_ref_t *buf_c;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* Define transfer property
|
||||
*/
|
||||
c_xfer_prp = *xfer_prp;
|
||||
if ( H5P_DEFAULT_F == c_xfer_prp ) c_xfer_prp = H5P_DEFAULT;
|
||||
|
||||
/*
|
||||
* Allocate temporary buffer and copy references from Fortran.
|
||||
*/
|
||||
buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*(*n));
|
||||
if ( buf_c != NULL ) {
|
||||
for (i = 0; i < *n; i++) {
|
||||
HDmemcpy(buf_c[i].oid, buf, H5R_OBJ_REF_BUF_SIZE);
|
||||
buf = buf + REF_OBJ_BUF_LEN_F;
|
||||
}
|
||||
}
|
||||
else return ret_value;
|
||||
|
||||
/*
|
||||
* Call H5Dwrite function.
|
||||
*/
|
||||
c_dset_id = (hid_t)*dset_id;
|
||||
c_mem_type_id = (hid_t)*mem_type_id;
|
||||
c_mem_space_id = (hid_t)*mem_space_id;
|
||||
c_file_space_id = (hid_t)*file_space_id;
|
||||
ret = H5Dwrite(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, buf_c);
|
||||
HDfree(buf_c);
|
||||
if (ret < 0) return ret_value;
|
||||
ret_value = 0;
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Name: h5dwrite_ref_reg_c
|
||||
* Purpose: Call H5Dwrite to write a dataset of dataset region references
|
||||
* Inputs: dset_id - dataset identifier
|
||||
* mem_type_id - memory datatype identifier
|
||||
* mem_space_id - memory dataspace identifier
|
||||
* file_space_id - memory dataspace identifier
|
||||
* xfer_pr - identifier of transfer property list
|
||||
* buf - data buffer with references to the objects.
|
||||
* n - number of references to be stored.
|
||||
* Returns: 0 on success, -1 on failure
|
||||
* Programmer: Elena Pourmal
|
||||
* Monday, July 24, 2000
|
||||
* Modifications:
|
||||
*---------------------------------------------------------------------------*/
|
||||
int_f
|
||||
nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *n)
|
||||
{
|
||||
int ret_value = -1;
|
||||
herr_t ret;
|
||||
hid_t c_dset_id;
|
||||
hid_t c_mem_type_id;
|
||||
hid_t c_mem_space_id;
|
||||
hid_t c_file_space_id;
|
||||
hid_t c_xfer_prp;
|
||||
hdset_reg_ref_t *buf_c;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* Define transfer property
|
||||
*/
|
||||
c_xfer_prp = *xfer_prp;
|
||||
if ( H5P_DEFAULT_F == c_xfer_prp ) c_xfer_prp = H5P_DEFAULT;
|
||||
|
||||
/*
|
||||
* Allocate temporary buffer and copy references from Fortran.
|
||||
*/
|
||||
buf_c = (hdset_reg_ref_t *)HDmalloc(sizeof(hdset_reg_ref_t)*(*n));
|
||||
if ( buf_c != NULL ) {
|
||||
for (i = 0; i < *n; i++) {
|
||||
HDmemcpy(buf_c[i].heapid, buf, H5R_DSET_REG_REF_BUF_SIZE);
|
||||
buf = buf + REF_REG_BUF_LEN_F;
|
||||
}
|
||||
}
|
||||
else return ret_value;
|
||||
|
||||
|
||||
/*
|
||||
* Call H5Dwrite function.
|
||||
*/
|
||||
c_dset_id = (hid_t)*dset_id;
|
||||
c_mem_type_id = (hid_t)*mem_type_id;
|
||||
c_mem_space_id = (hid_t)*mem_space_id;
|
||||
c_file_space_id = (hid_t)*file_space_id;
|
||||
ret = H5Dwrite(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, buf_c);
|
||||
HDfree(buf_c);
|
||||
if (ret < 0) return ret_value;
|
||||
ret_value = 0;
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Name: h5dreadc_c
|
||||
@ -240,6 +361,127 @@ nh5dread_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Name: h5dread_ref_obj_c
|
||||
* Purpose: Call H5Dread to read a dataset of object references
|
||||
* Inputs: dset_id - dataset identifier
|
||||
* mem_type_id - memory datatype identifier
|
||||
* mem_space_id - memory dataspace identifier
|
||||
* file_space_id - memory dataspace identifier
|
||||
* xfer_pr - identifier of transfer property list
|
||||
* buf - data buffer to store references to the objects.
|
||||
* n - number of references to be stored.
|
||||
* Returns: 0 on success, -1 on failure
|
||||
* Programmer: Elena Pourmal
|
||||
* Monday, July 24, 2000
|
||||
* Modifications:
|
||||
*---------------------------------------------------------------------------*/
|
||||
int_f
|
||||
nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f * buf, int_f *n)
|
||||
{
|
||||
int ret_value = -1;
|
||||
herr_t ret;
|
||||
hid_t c_dset_id;
|
||||
hid_t c_mem_type_id;
|
||||
hid_t c_mem_space_id;
|
||||
hid_t c_file_space_id;
|
||||
hid_t c_xfer_prp;
|
||||
hobj_ref_t *buf_c;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* Define transfer property
|
||||
*/
|
||||
c_xfer_prp = *xfer_prp;
|
||||
if ( H5P_DEFAULT_F == c_xfer_prp ) c_xfer_prp = H5P_DEFAULT;
|
||||
|
||||
/*
|
||||
* Allocate temporary buffer.
|
||||
*/
|
||||
buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*(*n));
|
||||
if ( buf_c != NULL ) {
|
||||
/*
|
||||
* Call H5Dread function.
|
||||
*/
|
||||
c_dset_id = (hid_t)*dset_id;
|
||||
c_mem_type_id = (hid_t)*mem_type_id;
|
||||
c_mem_space_id = (hid_t)*mem_space_id;
|
||||
c_file_space_id = (hid_t)*file_space_id;
|
||||
ret = H5Dread(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, buf_c);
|
||||
if (ret >=0) {
|
||||
for (i = 0; i < *n; i++) {
|
||||
HDmemcpy(buf, buf_c[i].oid, H5R_OBJ_REF_BUF_SIZE);
|
||||
buf = buf + REF_OBJ_BUF_LEN_F;
|
||||
}
|
||||
}
|
||||
if ( buf_c != NULL ) HDfree(buf_c);
|
||||
}
|
||||
if (ret < 0) return ret_value;
|
||||
ret_value = 0;
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Name: h5dread_ref_reg_c
|
||||
* Purpose: Call H5Dread to read a dataset of dataset region references
|
||||
* Inputs: dset_id - dataset identifier
|
||||
* mem_type_id - memory datatype identifier
|
||||
* mem_space_id - memory dataspace identifier
|
||||
* file_space_id - memory dataspace identifier
|
||||
* xfer_pr - identifier of transfer property list
|
||||
* buf - data buffer to store references to the objects.
|
||||
* n - number of references to be stored.
|
||||
* Returns: 0 on success, -1 on failure
|
||||
* Programmer: Elena Pourmal
|
||||
* Monday, July 24, 2000
|
||||
* Modifications:
|
||||
*---------------------------------------------------------------------------*/
|
||||
int_f
|
||||
nh5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f * buf, int_f *n)
|
||||
{
|
||||
int ret_value = -1;
|
||||
herr_t ret;
|
||||
hid_t c_dset_id;
|
||||
hid_t c_mem_type_id;
|
||||
hid_t c_mem_space_id;
|
||||
hid_t c_file_space_id;
|
||||
hid_t c_xfer_prp;
|
||||
hdset_reg_ref_t *buf_c;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* Define transfer property
|
||||
*/
|
||||
c_xfer_prp = *xfer_prp;
|
||||
if ( H5P_DEFAULT_F == c_xfer_prp ) c_xfer_prp = H5P_DEFAULT;
|
||||
|
||||
/*
|
||||
* Allocate temporary buffer.
|
||||
*/
|
||||
buf_c = (hdset_reg_ref_t *)HDmalloc(sizeof(hdset_reg_ref_t)*(*n));
|
||||
if ( buf_c != NULL ) {
|
||||
/*
|
||||
* Call H5Dread function.
|
||||
*/
|
||||
c_dset_id = (hid_t)*dset_id;
|
||||
c_mem_type_id = (hid_t)*mem_type_id;
|
||||
c_mem_space_id = (hid_t)*mem_space_id;
|
||||
c_file_space_id = (hid_t)*file_space_id;
|
||||
ret = H5Dread(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, buf_c);
|
||||
if (ret >=0) {
|
||||
for (i = 0; i < *n; i++) {
|
||||
HDmemcpy(buf, buf_c[i].heapid, H5R_DSET_REG_REF_BUF_SIZE);
|
||||
buf = buf + REF_REG_BUF_LEN_F;
|
||||
}
|
||||
}
|
||||
if ( buf_c != NULL ) HDfree(buf_c);
|
||||
}
|
||||
if (ret < 0) return ret_value;
|
||||
ret_value = 0;
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Name: h5dclose_c
|
||||
* Purpose: Call H5Dclose to close a dataset
|
||||
|
@ -137,13 +137,14 @@
|
||||
|
||||
END SUBROUTINE h5dclose_f
|
||||
|
||||
SUBROUTINE h5dwrite_reference_obj(dset_id, mem_type_id, buf, hdferr, &
|
||||
SUBROUTINE h5dwrite_reference_obj(dset_id, mem_type_id, buf, n, hdferr, &
|
||||
mem_space_id, file_space_id, xfer_prp)
|
||||
|
||||
IMPLICIT NONE
|
||||
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
|
||||
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
|
||||
TYPE(hobj_ref_t_f), DIMENSION(:), INTENT(IN) :: buf ! Data buffer
|
||||
TYPE(hobj_ref_t_f), DIMENSION(N), INTENT(IN) :: buf ! Data buffer
|
||||
INTEGER, INTENT(IN) :: n ! size of the bufffer buf
|
||||
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
||||
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
|
||||
! Memory dataspace identfier
|
||||
@ -155,7 +156,9 @@
|
||||
INTEGER(HID_T) :: xfer_prp_default
|
||||
INTEGER(HID_T) :: mem_space_id_default
|
||||
INTEGER(HID_T) :: file_space_id_default
|
||||
INTEGER, EXTERNAL :: h5dwrite_c
|
||||
INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
|
||||
INTEGER :: i,j
|
||||
INTEGER, EXTERNAL :: h5dwrite_ref_obj_c
|
||||
|
||||
xfer_prp_default = H5P_DEFAULT_F
|
||||
mem_space_id_default = H5S_ALL_F
|
||||
@ -164,19 +167,32 @@
|
||||
if (present(xfer_prp)) xfer_prp_default = xfer_prp
|
||||
if (present(mem_space_id)) mem_space_id_default = mem_space_id
|
||||
if (present(file_space_id)) file_space_id_default = file_space_id
|
||||
|
||||
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
|
||||
file_space_id_default, xfer_prp_default, buf)
|
||||
|
||||
allocate(ref_buf(REF_OBJ_BUF_LEN*n), stat=hdferr)
|
||||
if (hdferr .NE. 0 ) then
|
||||
hdferr = -1
|
||||
return
|
||||
else
|
||||
do j = 1, n
|
||||
do i = 1, REF_OBJ_BUF_LEN
|
||||
ref_buf(REF_OBJ_BUF_LEN*(j-1) + i ) = buf(j)%ref(i)
|
||||
enddo
|
||||
enddo
|
||||
endif
|
||||
hdferr = h5dwrite_ref_obj_c(dset_id, mem_type_id, mem_space_id_default, &
|
||||
file_space_id_default, xfer_prp_default, ref_buf, n)
|
||||
deallocate(ref_buf)
|
||||
|
||||
END SUBROUTINE h5dwrite_reference_obj
|
||||
|
||||
SUBROUTINE h5dwrite_reference_dsetreg(dset_id, mem_type_id, buf, hdferr, &
|
||||
SUBROUTINE h5dwrite_reference_dsetreg(dset_id, mem_type_id, buf, n, hdferr, &
|
||||
mem_space_id, file_space_id, xfer_prp)
|
||||
|
||||
IMPLICIT NONE
|
||||
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
|
||||
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
|
||||
TYPE(hdset_reg_ref_t_f), DIMENSION(:), INTENT(IN) :: buf ! Data buffer
|
||||
INTEGER, INTENT(IN) :: n ! size of the bufffer buf
|
||||
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
||||
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
|
||||
! Memory dataspace identfier
|
||||
@ -188,7 +204,9 @@
|
||||
INTEGER(HID_T) :: xfer_prp_default
|
||||
INTEGER(HID_T) :: mem_space_id_default
|
||||
INTEGER(HID_T) :: file_space_id_default
|
||||
INTEGER, EXTERNAL :: h5dwrite_c
|
||||
INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
|
||||
INTEGER :: i,j
|
||||
INTEGER, EXTERNAL :: h5dwrite_ref_reg_c
|
||||
|
||||
xfer_prp_default = H5P_DEFAULT_F
|
||||
mem_space_id_default = H5S_ALL_F
|
||||
@ -198,8 +216,20 @@
|
||||
if (present(mem_space_id)) mem_space_id_default = mem_space_id
|
||||
if (present(file_space_id)) file_space_id_default = file_space_id
|
||||
|
||||
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
|
||||
file_space_id_default, xfer_prp_default, buf)
|
||||
allocate(ref_buf(REF_REG_BUF_LEN*n), stat=hdferr)
|
||||
if (hdferr .NE. 0 ) then
|
||||
hdferr = -1
|
||||
return
|
||||
else
|
||||
do j = 1, n
|
||||
do i = 1, REF_REG_BUF_LEN
|
||||
ref_buf(REF_REG_BUF_LEN*(j-1) + i) = buf(j)%ref(i)
|
||||
enddo
|
||||
enddo
|
||||
endif
|
||||
hdferr = h5dwrite_ref_reg_c(dset_id, mem_type_id, mem_space_id_default, &
|
||||
file_space_id_default, xfer_prp_default, ref_buf, n)
|
||||
deallocate(ref_buf)
|
||||
|
||||
END SUBROUTINE h5dwrite_reference_dsetreg
|
||||
|
||||
@ -1265,13 +1295,14 @@
|
||||
|
||||
END SUBROUTINE h5dwrite_double_7
|
||||
|
||||
SUBROUTINE h5dread_reference_obj(dset_id, mem_type_id, buf, hdferr, &
|
||||
SUBROUTINE h5dread_reference_obj(dset_id, mem_type_id, buf, n, hdferr, &
|
||||
mem_space_id, file_space_id, xfer_prp)
|
||||
|
||||
IMPLICIT NONE
|
||||
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
|
||||
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
|
||||
TYPE(hobj_ref_t_f), DIMENSION(:), INTENT(INOUT) :: buf ! Data buffer
|
||||
TYPE(hobj_ref_t_f), DIMENSION(N), INTENT(INOUT) :: buf ! Data buffer
|
||||
INTEGER, INTENT(IN) :: n ! Size of the budffer buf
|
||||
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
||||
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
|
||||
! Memory dataspace identfier
|
||||
@ -1283,7 +1314,14 @@
|
||||
INTEGER(HID_T) :: xfer_prp_default
|
||||
INTEGER(HID_T) :: mem_space_id_default
|
||||
INTEGER(HID_T) :: file_space_id_default
|
||||
INTEGER, EXTERNAL :: h5dread_c
|
||||
INTEGER, EXTERNAL :: h5dread_ref_obj_c
|
||||
INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
|
||||
INTEGER :: i,j
|
||||
allocate(ref_buf(REF_OBJ_BUF_LEN*n), stat=hdferr)
|
||||
if (hdferr .NE. 0) then
|
||||
hdferr = -1
|
||||
return
|
||||
endif
|
||||
|
||||
xfer_prp_default = H5P_DEFAULT_F
|
||||
mem_space_id_default = H5S_ALL_F
|
||||
@ -1293,18 +1331,24 @@
|
||||
if (present(mem_space_id)) mem_space_id_default = mem_space_id
|
||||
if (present(file_space_id)) file_space_id_default = file_space_id
|
||||
|
||||
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
|
||||
file_space_id_default, xfer_prp_default, buf)
|
||||
|
||||
hdferr = h5dread_ref_obj_c(dset_id, mem_type_id, mem_space_id_default, &
|
||||
file_space_id_default, xfer_prp_default, ref_buf, n)
|
||||
do j = 1, n
|
||||
do i = 1, REF_OBJ_BUF_LEN
|
||||
buf(j)%ref(i) = ref_buf(REF_OBJ_BUF_LEN*(j-1) + i)
|
||||
enddo
|
||||
enddo
|
||||
deallocate(ref_buf)
|
||||
END SUBROUTINE h5dread_reference_obj
|
||||
|
||||
SUBROUTINE h5dread_reference_dsetreg(dset_id, mem_type_id, buf, hdferr, &
|
||||
SUBROUTINE h5dread_reference_dsetreg(dset_id, mem_type_id, buf, n, hdferr, &
|
||||
mem_space_id, file_space_id, xfer_prp)
|
||||
|
||||
IMPLICIT NONE
|
||||
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
|
||||
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
|
||||
TYPE(hdset_reg_ref_t_f), DIMENSION(:), INTENT(INOUT) :: buf ! Data buffer
|
||||
INTEGER, INTENT(IN) :: n ! Size of the buffer buf
|
||||
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
||||
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
|
||||
! Memory dataspace identfier
|
||||
@ -1316,7 +1360,14 @@
|
||||
INTEGER(HID_T) :: xfer_prp_default
|
||||
INTEGER(HID_T) :: mem_space_id_default
|
||||
INTEGER(HID_T) :: file_space_id_default
|
||||
INTEGER, EXTERNAL :: h5dread_c
|
||||
INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
|
||||
INTEGER :: i,j
|
||||
INTEGER, EXTERNAL :: h5dread_ref_reg_c
|
||||
allocate(ref_buf(REF_REG_BUF_LEN*n), stat=hdferr)
|
||||
if (hdferr .NE. 0) then
|
||||
hdferr = -1
|
||||
return
|
||||
endif
|
||||
|
||||
xfer_prp_default = H5P_DEFAULT_F
|
||||
mem_space_id_default = H5S_ALL_F
|
||||
@ -1326,9 +1377,15 @@
|
||||
if (present(mem_space_id)) mem_space_id_default = mem_space_id
|
||||
if (present(file_space_id)) file_space_id_default = file_space_id
|
||||
|
||||
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
|
||||
file_space_id_default, xfer_prp_default, buf)
|
||||
hdferr = h5dread_ref_reg_c(dset_id, mem_type_id, mem_space_id_default, &
|
||||
file_space_id_default, xfer_prp_default, ref_buf, n)
|
||||
|
||||
do j = 1, n
|
||||
do i = 1, REF_REG_BUF_LEN
|
||||
buf(j)%ref(i) = ref_buf(REF_REG_BUF_LEN*(j-1) + i)
|
||||
enddo
|
||||
enddo
|
||||
deallocate(ref_buf)
|
||||
END SUBROUTINE h5dread_reference_dsetreg
|
||||
|
||||
|
||||
|
@ -735,16 +735,20 @@ int_f
|
||||
nh5pget_driver_c (hid_t_f *prp_id, int_f* driver)
|
||||
{
|
||||
int ret_value = -1;
|
||||
/*
|
||||
hid_t c_prp_id;
|
||||
H5F_driver_t c_driver;
|
||||
*/
|
||||
|
||||
/*
|
||||
* Call H5Pget_driver function.
|
||||
*/
|
||||
/*
|
||||
c_prp_id = *prp_id;
|
||||
c_driver = H5Pget_driver(c_prp_id);
|
||||
*driver = (int_f) c_driver;
|
||||
if (c_driver < 0) return ret_value;
|
||||
*/
|
||||
ret_value = 0;
|
||||
return ret_value;
|
||||
}
|
||||
@ -769,7 +773,7 @@ nh5pset_stdio_c (hid_t_f *prp_id)
|
||||
* Call H5Pset_stdio function.
|
||||
*/
|
||||
c_prp_id = *prp_id;
|
||||
ret = H5Pset_stdio(c_prp_id);
|
||||
/* ret = H5Pset_stdio(c_prp_id); */
|
||||
if (ret < 0) return ret_value;
|
||||
ret_value = 0;
|
||||
return ret_value;
|
||||
@ -797,7 +801,7 @@ nh5pget_stdio_c (hid_t_f *prp_id, int_f* io)
|
||||
* Call H5Pget_stdio function.
|
||||
*/
|
||||
c_prp_id = *prp_id;
|
||||
ret = H5Pget_stdio(c_prp_id);
|
||||
/* ret = H5Pget_stdio(c_prp_id); */
|
||||
if (ret < 0) return ret_value;
|
||||
*io = (int_f)ret;
|
||||
ret_value = 0;
|
||||
@ -824,7 +828,7 @@ nh5pset_sec2_c (hid_t_f *prp_id)
|
||||
* Call H5Pset_sec2 function.
|
||||
*/
|
||||
c_prp_id = *prp_id;
|
||||
ret = H5Pset_sec2(c_prp_id);
|
||||
/* ret = H5Pset_sec2(c_prp_id); */
|
||||
if (ret < 0) return ret_value;
|
||||
ret_value = 0;
|
||||
return ret_value;
|
||||
@ -852,7 +856,7 @@ nh5pget_sec2_c (hid_t_f *prp_id, int_f* sec2)
|
||||
* Call H5Pget_sec2 function.
|
||||
*/
|
||||
c_prp_id = *prp_id;
|
||||
ret = H5Pget_sec2(c_prp_id);
|
||||
/* ret = H5Pget_sec2(c_prp_id); */
|
||||
if (ret < 0) return ret_value;
|
||||
*sec2 = (int_f)ret;
|
||||
ret_value = 0;
|
||||
@ -945,7 +949,7 @@ nh5pset_core_c (hid_t_f *prp_id, size_t_f* increment)
|
||||
* Call H5Pset_core function.
|
||||
*/
|
||||
c_prp_id = *prp_id;
|
||||
ret = H5Pset_core(c_prp_id, c_increment);
|
||||
/* ret = H5Pset_core(c_prp_id, c_increment); */
|
||||
if (ret < 0) return ret_value;
|
||||
ret_value = 0;
|
||||
return ret_value;
|
||||
@ -973,7 +977,7 @@ nh5pget_core_c (hid_t_f *prp_id, size_t_f* increment)
|
||||
* Call H5Pset_increment function.
|
||||
*/
|
||||
c_prp_id = *prp_id;
|
||||
ret = H5Pget_core(c_prp_id, &c_increment);
|
||||
/* ret = H5Pget_core(c_prp_id, &c_increment); */
|
||||
if (ret < 0) return ret_value;
|
||||
*increment = (size_t_f)c_increment;
|
||||
ret_value = 0;
|
||||
@ -1007,7 +1011,7 @@ nh5pset_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist )
|
||||
* Call H5Pset_family function.
|
||||
*/
|
||||
c_prp_id = *prp_id;
|
||||
ret = H5Pset_family(c_prp_id, c_memb_size, c_memb_plist);
|
||||
/* ret = H5Pset_family(c_prp_id, c_memb_size, c_memb_plist); */
|
||||
if (ret < 0) return ret_value;
|
||||
ret_value = 0;
|
||||
return ret_value;
|
||||
@ -1038,7 +1042,7 @@ nh5pget_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist)
|
||||
* Call H5Pget_family function.
|
||||
*/
|
||||
c_prp_id = *prp_id;
|
||||
ret = H5Pget_family(c_prp_id, &c_memb_size, &c_memb_plist);
|
||||
/* ret = H5Pget_family(c_prp_id, &c_memb_size, &c_memb_plist); */
|
||||
if (ret < 0) return ret_value;
|
||||
*memb_size = (hsize_t_f)c_memb_size;
|
||||
*memb_plist = (hsize_t_f)c_memb_plist;
|
||||
@ -1166,7 +1170,7 @@ nh5pset_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_p
|
||||
c_prp_id = *prp_id;
|
||||
c_meta_plist = *meta_plist;
|
||||
c_raw_plist = *raw_plist;
|
||||
ret = H5Pset_split(c_prp_id, c_meta_ext, c_meta_plist, c_raw_ext, c_raw_plist );
|
||||
/*ret = H5Pset_split(c_prp_id, c_meta_ext, c_meta_plist, c_raw_ext, c_raw_plist );*/
|
||||
if (ret < 0) return ret_value;
|
||||
ret_value = 0;
|
||||
return ret_value;
|
||||
@ -1213,7 +1217,7 @@ nh5pget_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_
|
||||
* Call H5Pget_split function.
|
||||
*/
|
||||
c_prp_id = *prp_id;
|
||||
ret = H5Pget_split(c_prp_id, c_meta_ext_size, c_meta_ext,&c_meta_plist, c_raw_ext_size, c_raw_ext, &c_raw_plist );
|
||||
/*ret = H5Pget_split(c_prp_id, c_meta_ext_size, c_meta_ext,&c_meta_plist, c_raw_ext_size, c_raw_ext, &c_raw_plist ); */
|
||||
|
||||
if (ret < 0) return ret_value;
|
||||
*meta_plist = c_meta_plist;
|
||||
|
@ -13,7 +13,7 @@
|
||||
* Modifications:
|
||||
*---------------------------------------------------------------------------*/
|
||||
int_f
|
||||
nh5rcreate_object_c (_fcd ref, hid_t_f *loc_id, _fcd name, int_f *namelen)
|
||||
nh5rcreate_object_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen)
|
||||
{
|
||||
int ret_value = -1;
|
||||
hid_t c_loc_id;
|
||||
@ -35,18 +35,14 @@ nh5rcreate_object_c (_fcd ref, hid_t_f *loc_id, _fcd name, int_f *namelen)
|
||||
*/
|
||||
c_loc_id = *loc_id;
|
||||
ret_value_c = H5Rcreate(&ref_c, c_loc_id, c_name, H5R_OBJECT, -1);
|
||||
|
||||
HDfree(c_name);
|
||||
if (ret_value_c >= 0) {
|
||||
for(i=0; i < H5R_OBJ_REF_BUF_SIZE; i++)
|
||||
{
|
||||
#if defined(_UNICOS)
|
||||
ref.c_pointer[i]=ref_c.oid[i];
|
||||
#else
|
||||
ref[i]=ref_c.oid[i];
|
||||
#endif
|
||||
}
|
||||
if (ret_value_c >= 0) {
|
||||
HDmemcpy(ref, ref_c.oid, H5R_OBJ_REF_BUF_SIZE);
|
||||
ret_value = 0;
|
||||
}
|
||||
|
||||
ret_value = 0;
|
||||
return ret_value;
|
||||
}
|
||||
|
||||
@ -65,7 +61,7 @@ nh5rcreate_object_c (_fcd ref, hid_t_f *loc_id, _fcd name, int_f *namelen)
|
||||
* Modifications:
|
||||
*---------------------------------------------------------------------------*/
|
||||
int_f
|
||||
nh5rcreate_region_c (_fcd ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id)
|
||||
nh5rcreate_region_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id)
|
||||
{
|
||||
int ret_value = -1;
|
||||
hid_t c_loc_id;
|
||||
@ -89,16 +85,10 @@ nh5rcreate_region_c (_fcd ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t
|
||||
c_loc_id = *loc_id;
|
||||
c_space_id = *space_id;
|
||||
ret_value_c = H5Rcreate(&ref_c, c_loc_id, c_name, H5R_DATASET_REGION, c_space_id);
|
||||
|
||||
HDfree(c_name);
|
||||
if (ret_value_c >= 0) {
|
||||
for(i=0; i < H5R_DSET_REG_REF_BUF_SIZE; i++)
|
||||
{
|
||||
#if defined(_UNICOS)
|
||||
ref.c_pointer[i]=ref_c.heapid[i];
|
||||
#else
|
||||
ref[i]=ref_c.heapid[i];
|
||||
#endif
|
||||
}
|
||||
HDmemcpy (ref, ref_c.heapid, H5R_DSET_REG_REF_BUF_SIZE);
|
||||
ret_value = 0;
|
||||
}
|
||||
return ret_value;
|
||||
@ -116,7 +106,7 @@ nh5rcreate_region_c (_fcd ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t
|
||||
* Modifications:
|
||||
*---------------------------------------------------------------------------*/
|
||||
int_f
|
||||
nh5rdereference_region_c (hid_t_f *dset_id, _fcd ref, hid_t_f *obj_id)
|
||||
nh5rdereference_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id)
|
||||
{
|
||||
int ret_value = -1;
|
||||
hid_t c_dset_id;
|
||||
@ -124,14 +114,7 @@ nh5rdereference_region_c (hid_t_f *dset_id, _fcd ref, hid_t_f *obj_id)
|
||||
hid_t c_obj_id;
|
||||
int i;
|
||||
|
||||
for(i=0; i < H5R_DSET_REG_REF_BUF_SIZE; i++) {
|
||||
|
||||
#if defined(_UNICOS)
|
||||
ref_c.heapid[i]=ref.c_pointer[i];
|
||||
#else
|
||||
ref_c.heapid[i]=ref[i];
|
||||
#endif
|
||||
}
|
||||
HDmemcpy (ref_c.heapid, ref, H5R_DSET_REG_REF_BUF_SIZE);
|
||||
|
||||
/*
|
||||
* Call H5Rdereference function.
|
||||
@ -157,7 +140,7 @@ nh5rdereference_region_c (hid_t_f *dset_id, _fcd ref, hid_t_f *obj_id)
|
||||
* Modifications:
|
||||
*---------------------------------------------------------------------------*/
|
||||
int_f
|
||||
nh5rdereference_object_c (hid_t_f *dset_id, _fcd ref, hid_t_f *obj_id)
|
||||
nh5rdereference_object_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id)
|
||||
{
|
||||
int ret_value = -1;
|
||||
hid_t c_dset_id;
|
||||
@ -165,14 +148,7 @@ nh5rdereference_object_c (hid_t_f *dset_id, _fcd ref, hid_t_f *obj_id)
|
||||
hobj_ref_t ref_c;
|
||||
int i;
|
||||
|
||||
for(i=0; i < H5R_OBJ_REF_BUF_SIZE; i++) {
|
||||
|
||||
#if defined(_UNICOS)
|
||||
ref_c.oid[i]=ref.c_pointer[i];
|
||||
#else
|
||||
ref_c.oid[i]=ref[i];
|
||||
#endif
|
||||
}
|
||||
HDmemcpy (ref_c.oid, ref, H5R_OBJ_REF_BUF_SIZE);
|
||||
|
||||
/*
|
||||
* Call H5Rdereference function.
|
||||
@ -197,7 +173,7 @@ nh5rdereference_object_c (hid_t_f *dset_id, _fcd ref, hid_t_f *obj_id)
|
||||
* Modifications:
|
||||
*---------------------------------------------------------------------------*/
|
||||
int_f
|
||||
nh5rget_region_region_c (hid_t_f *dset_id, _fcd ref, hid_t_f *space_id)
|
||||
nh5rget_region_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *space_id)
|
||||
{
|
||||
int ret_value = -1;
|
||||
hid_t c_dset_id;
|
||||
@ -205,14 +181,7 @@ nh5rget_region_region_c (hid_t_f *dset_id, _fcd ref, hid_t_f *space_id)
|
||||
hdset_reg_ref_t ref_c;
|
||||
int i;
|
||||
|
||||
for(i=0; i < H5R_DSET_REG_REF_BUF_SIZE; i++) {
|
||||
|
||||
#if defined(_UNICOS)
|
||||
ref_c.heapid[i]=ref.c_pointer[i];
|
||||
#else
|
||||
ref_c.heapid[i]=ref[i];
|
||||
#endif
|
||||
}
|
||||
HDmemcpy (ref_c.heapid, ref, H5R_DSET_REG_REF_BUF_SIZE);
|
||||
|
||||
/*
|
||||
* Call H5Rget_region function.
|
||||
@ -238,7 +207,7 @@ nh5rget_region_region_c (hid_t_f *dset_id, _fcd ref, hid_t_f *space_id)
|
||||
* Modifications:
|
||||
*---------------------------------------------------------------------------*/
|
||||
int_f
|
||||
nh5rget_object_type_obj_c (hid_t_f *dset_id, _fcd ref, int_f *obj_type)
|
||||
nh5rget_object_type_obj_c (hid_t_f *dset_id, int_f *ref, int_f *obj_type)
|
||||
{
|
||||
int ret_value = -1;
|
||||
hid_t c_dset_id;
|
||||
@ -246,14 +215,7 @@ nh5rget_object_type_obj_c (hid_t_f *dset_id, _fcd ref, int_f *obj_type)
|
||||
hobj_ref_t ref_c;
|
||||
int i;
|
||||
|
||||
for(i=0; i < H5R_OBJ_REF_BUF_SIZE; i++) {
|
||||
|
||||
#if defined(_UNICOS)
|
||||
ref_c.oid[i]=ref.c_pointer[i];
|
||||
#else
|
||||
ref_c.oid[i]=ref[i];
|
||||
#endif
|
||||
}
|
||||
HDmemcpy (ref_c.oid, ref, H5R_OBJ_REF_BUF_SIZE);
|
||||
|
||||
/*
|
||||
* Call H5Rget_object_type function.
|
||||
|
@ -4,15 +4,17 @@
|
||||
MODULE H5R
|
||||
USE H5FORTRAN_TYPES
|
||||
USE H5FORTRAN_FLAGS
|
||||
! If you change the value of these parameters, do not forget to change corresponding
|
||||
! values in the H5f90.h file.
|
||||
INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
|
||||
INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
|
||||
|
||||
TYPE hobj_ref_t_f
|
||||
!INTEGER(KIND=4) ref(2) could cause trouble on Crays
|
||||
CHARACTER ref(8)
|
||||
INTEGER ref(REF_OBJ_BUF_LEN)
|
||||
END TYPE
|
||||
|
||||
TYPE hdset_reg_ref_t_f
|
||||
!INTEGER(KIND=4) reg_ref(3) could cause troubles on Crays
|
||||
CHARACTER ref(12)
|
||||
INTEGER ref(REF_REG_BUF_LEN)
|
||||
END TYPE
|
||||
|
||||
INTERFACE h5rcreate_f
|
||||
@ -54,11 +56,15 @@
|
||||
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
||||
|
||||
INTEGER :: namelen ! Name length
|
||||
INTEGER :: ref_f(REF_OBJ_BUF_LEN) ! Local buffer to pass reference
|
||||
INTEGER, EXTERNAL :: h5rcreate_object_c
|
||||
namelen = LEN(name)
|
||||
hdferr = h5rcreate_object_c(ref, loc_id, name, namelen )
|
||||
|
||||
ref_f = 0
|
||||
hdferr = h5rcreate_object_c(ref_f, loc_id, name, namelen )
|
||||
ref%ref = ref_f
|
||||
|
||||
END SUBROUTINE h5rcreate_object_f
|
||||
|
||||
|
||||
SUBROUTINE h5rcreate_region_f(loc_id, name, space_id, ref, hdferr)
|
||||
IMPLICIT NONE
|
||||
@ -70,9 +76,12 @@
|
||||
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
||||
|
||||
INTEGER :: namelen ! Name length
|
||||
INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
|
||||
INTEGER, EXTERNAL :: h5rcreate_region_c
|
||||
namelen = LEN(name)
|
||||
hdferr = h5rcreate_region_c(ref, loc_id, name, namelen, space_id )
|
||||
ref_f = 0
|
||||
hdferr = h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id )
|
||||
ref%ref = ref_f
|
||||
|
||||
END SUBROUTINE h5rcreate_region_f
|
||||
|
||||
@ -84,9 +93,10 @@
|
||||
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
||||
|
||||
INTEGER :: ref_type ! Reference type
|
||||
INTEGER :: ref_f(REF_OBJ_BUF_LEN) ! Local buffer to pass reference
|
||||
INTEGER, EXTERNAL :: h5rdereference_object_c
|
||||
ref_type = H5R_OBJECT_F
|
||||
hdferr = h5rdereference_object_c(dset_id, ref, obj_id )
|
||||
ref_f = ref%ref
|
||||
hdferr = h5rdereference_object_c(dset_id, ref_f, obj_id )
|
||||
|
||||
END SUBROUTINE h5rdereference_object_f
|
||||
|
||||
@ -98,9 +108,11 @@
|
||||
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
||||
|
||||
INTEGER :: ref_type ! Reference type
|
||||
INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
|
||||
INTEGER, EXTERNAL :: h5rdereference_region_c
|
||||
ref_type = H5R_DATASET_REGION_F
|
||||
hdferr = h5rdereference_region_c(dset_id, ref, obj_id )
|
||||
ref_f = ref%ref
|
||||
hdferr = h5rdereference_region_c(dset_id, ref_f, obj_id )
|
||||
|
||||
END SUBROUTINE h5rdereference_region_f
|
||||
|
||||
@ -111,9 +123,11 @@
|
||||
TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Dataset region reference
|
||||
INTEGER(HID_T), INTENT(OUT) :: space_id ! Space identifier
|
||||
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
||||
INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
|
||||
|
||||
INTEGER, EXTERNAL :: h5rget_region_region_c
|
||||
hdferr = h5rget_region_region_c(dset_id, ref, space_id )
|
||||
ref_f = ref%ref
|
||||
hdferr = h5rget_region_region_c(dset_id, ref_f, space_id )
|
||||
|
||||
END SUBROUTINE h5rget_region_region_f
|
||||
|
||||
@ -129,9 +143,11 @@
|
||||
! H5G_TYPE_F 3
|
||||
|
||||
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
||||
INTEGER :: ref_f(REF_OBJ_BUF_LEN) ! Local buffer to pass reference
|
||||
|
||||
INTEGER, EXTERNAL :: h5rget_object_type_obj_c
|
||||
hdferr = h5rget_object_type_obj_c(dset_id, ref, obj_type )
|
||||
ref_f = ref%ref
|
||||
hdferr = h5rget_object_type_obj_c(dset_id, ref_f, obj_type )
|
||||
|
||||
END SUBROUTINE h5rget_object_type_obj_f
|
||||
|
||||
|
@ -32,6 +32,11 @@
|
||||
|
||||
#define H5S_ALL_F -2
|
||||
|
||||
/* Constants used in H5Rff.f90 and H5Rf.c files */
|
||||
|
||||
#define REF_OBJ_BUF_LEN_F 2
|
||||
#define REF_REG_BUF_LEN_F 3
|
||||
|
||||
/* Constants used in H5Sf.c and H5Sff.f90 files */
|
||||
|
||||
#define H5S_NO_CLASS_F -1
|
||||
|
@ -173,8 +173,12 @@ extern int_f nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *ne
|
||||
# define nh5dclose_c FNAME(H5DCLOSE_C)
|
||||
# define nh5dopen_c FNAME(H5DOPEN_C)
|
||||
# define nh5dwrite_c FNAME(H5DWRITE_C)
|
||||
# define nh5dwrite_ref_obj_c FNAME(H5DWRITE_REF_OBJ_C)
|
||||
# define nh5dwrite_ref_reg_c FNAME(H5DWRITE_REF_REG_C)
|
||||
# define nh5dwritec_c FNAME(H5DWRITEC_C)
|
||||
# define nh5dread_c FNAME(H5DREAD_C)
|
||||
# define nh5dread_ref_reg_c FNAME(H5DREAD_REF_REG_C)
|
||||
# define nh5dread_ref_obj_c FNAME(H5DREAD_REF_OBJ_C)
|
||||
# define nh5dreadc_c FNAME(H5DREADC_C)
|
||||
# define nh5dget_space_c FNAME(H5DGET_SPACE_C)
|
||||
# define nh5dget_type_c FNAME(H5DGET_TYPE_C)
|
||||
@ -186,7 +190,11 @@ extern int_f nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *ne
|
||||
# define nh5dopen_c FNAME(h5dopen_c)
|
||||
# define nh5dwrite_c FNAME(h5dwrite_c)
|
||||
# define nh5dwritec_c FNAME(h5dwritec_c)
|
||||
# define nh5dwrite_ref_obj_c FNAME(h5dwrite_ref_obj_c)
|
||||
# define nh5dwrite_ref_reg_c FNAME(h5dwrite_ref_reg_c)
|
||||
# define nh5dread_c FNAME(h5dread_c)
|
||||
# define nh5dread_ref_reg_c FNAME(h5dread_ref_reg_c)
|
||||
# define nh5dread_ref_obj_c FNAME(h5dread_ref_obj_c)
|
||||
# define nh5dreadc_c FNAME(h5dreadc_c)
|
||||
# define nh5dget_space_c FNAME(h5dget_space_c)
|
||||
# define nh5dget_type_c FNAME(h5dget_type_c)
|
||||
@ -205,6 +213,11 @@ extern int_f nh5dclose_c ( hid_t_f *dset_id );
|
||||
extern int_f nh5dwrite_c
|
||||
(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf);
|
||||
|
||||
extern int_f nh5dwrite_ref_obj_c
|
||||
(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *n);
|
||||
|
||||
extern int_f nh5dwrite_ref_reg_c
|
||||
(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *n);
|
||||
|
||||
extern int_f nh5dwritec_c
|
||||
(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf);
|
||||
@ -213,6 +226,12 @@ extern int_f nh5dread_c
|
||||
(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf);
|
||||
|
||||
|
||||
extern int_f nh5dread_ref_obj_c
|
||||
(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *n);
|
||||
|
||||
extern int_f nh5dread_ref_reg_c
|
||||
(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *n);
|
||||
|
||||
extern int_f nh5dreadc_c
|
||||
(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf);
|
||||
|
||||
@ -793,23 +812,23 @@ nh5pset_xfer_c(hid_t_f *prp_id, int_f* data_xfer_mode);
|
||||
#endif /* H5Rf90_FNAMES */
|
||||
|
||||
extern int_f
|
||||
nh5rcreate_object_c (_fcd ref, hid_t_f *loc_id, _fcd name, int_f *namelen);
|
||||
nh5rcreate_object_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen);
|
||||
|
||||
|
||||
extern int_f
|
||||
nh5rcreate_region_c (_fcd ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id);
|
||||
nh5rcreate_region_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id);
|
||||
|
||||
extern int_f
|
||||
nh5rdereference_region_c (hid_t_f *dset_id, _fcd ref, hid_t_f *obj_id);
|
||||
nh5rdereference_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id);
|
||||
|
||||
extern int_f
|
||||
nh5rdereference_object_c (hid_t_f *dset_id, _fcd ref, hid_t_f *obj_id);
|
||||
nh5rdereference_object_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id);
|
||||
|
||||
extern int_f
|
||||
nh5rget_region_region_c (hid_t_f *dset_id, _fcd ref, hid_t_f *space_id);
|
||||
nh5rget_region_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *space_id);
|
||||
|
||||
extern int_f
|
||||
nh5rget_object_type_obj_c (hid_t_f *dset_id, _fcd ref, int_f *obj_type);
|
||||
nh5rget_object_type_obj_c (hid_t_f *dset_id, int_f *ref, int_f *obj_type);
|
||||
|
||||
/*
|
||||
* Functions from H5If.c
|
||||
|
Loading…
Reference in New Issue
Block a user