diff options
author | Elena Pourmal <epourmal@hdfgroup.org> | 2004-04-15 21:59:05 (GMT) |
---|---|---|
committer | Elena Pourmal <epourmal@hdfgroup.org> | 2004-04-15 21:59:05 (GMT) |
commit | 508b06e28609af97be50591b49066381957e9c4e (patch) | |
tree | cf889684fc36977ce9df2b9e3310b9372c26c085 /fortran/src/H5Df.c | |
parent | da3f980be5516deea598cb1a11f79ef1c20c9257 (diff) | |
download | hdf5-508b06e28609af97be50591b49066381957e9c4e.zip hdf5-508b06e28609af97be50591b49066381957e9c4e.tar.gz hdf5-508b06e28609af97be50591b49066381957e9c4e.tar.bz2 |
[svn-r8357]
Purpose: Maintenance
Description: Fortran functions h5dwrite/read_f and h5awrite/read_f
were overloaded with the dims parameter being of type
INTEGER. It was a design flaw. dims should be of type
INTEGER(HSIZE_T). Overloading was done to assure backward
compatibility of 1.4.* branch with hdf5 1.2.* branch.
We promised to remove the old function with INTEGER dims
in 1.6.0. It was removed from the documentation but
was not removed from the source code.
Solution: Finally cleaned up the code.
Platforms tested: Windows 2000 with DEC Fortran, LInux with Intel Fortran,
Solaris 2.7 32/64-bit mode.
Misc. update:
Diffstat (limited to 'fortran/src/H5Df.c')
-rw-r--r-- | fortran/src/H5Df.c | 413 |
1 files changed, 10 insertions, 403 deletions
diff --git a/fortran/src/H5Df.c b/fortran/src/H5Df.c index 41f8346..05c11b9 100644 --- a/fortran/src/H5Df.c +++ b/fortran/src/H5Df.c @@ -125,11 +125,10 @@ DONE: * buf - character data buffer * Returns: 0 on success, -1 on failure * Programmer: Elena Pourmal - * Wednesday, August 6, 1999 - * Modifications: + * Tuesday, May 14, 2002 *---------------------------------------------------------------------------*/ 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, int_f *dims) +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, hsize_t_f *dims) { int ret_value = -1; @@ -152,83 +151,10 @@ nh5dwritec_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid * buf - data buffer * Returns: 0 on success, -1 on failure * Programmer: Elena Pourmal - * Wednesday, August 6, 1999 - * Modifications: - *---------------------------------------------------------------------------*/ -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, int_f *dims) -{ - 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; - - /* - * Define transfer property - */ - c_xfer_prp = (hid_t)*xfer_prp; - - /* - * 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); - - if (ret < 0) return ret_value; - ret_value = 0; - return ret_value; -} -/*---------------------------------------------------------------------------- - * Name: h5dwritec_c_b - * Purpose: Call h5dwrite_c_b to write a dataset of characters - * 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 - character data buffer - * Returns: 0 on success, -1 on failure - * Programmer: Elena Pourmal - * Tuesday, May 14, 2002 - * Modifications: This function is added to accomodate oveloaded h5dwrite_f - * with the dims argument being of INTEGER(HSIZE_T) type - *---------------------------------------------------------------------------*/ -int_f -nh5dwritec_c_b (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, hsize_t_f *dims) -{ - int ret_value = -1; - - /* - * Call h5dwrite_c function. - */ - ret_value = nh5dwrite_c_b(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); - - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5dwrite_c_b - * Purpose: Call H5Dwrite to write a dataset - * 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 - * Returns: 0 on success, -1 on failure - * Programmer: Elena Pourmal * Tuesday, May 14, 2002 - * Modifications: This function is added to accomodate oveloaded h5dwrite_f - * with the dims argument being of INTEGER(HSIZE_T) type *---------------------------------------------------------------------------*/ int_f -nh5dwrite_c_b (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, hsize_t_f *dims) +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, hsize_t_f *dims) { int ret_value = -1; herr_t ret; @@ -270,71 +196,10 @@ nh5dwrite_c_b (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi * 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 *dims) -{ - 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 = NULL; - int i, n; - n = (int)*dims; - - /* - * Define transfer property - */ - c_xfer_prp = (hid_t)*xfer_prp; - - /* - * 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_obj_c_b - * 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 * Tuesday, May 14, 2002 - * Modifications: This function was added to accomodate h5dwrite_f with the - * dims argumnet being of INTEGER(HSIZE_T) type. *---------------------------------------------------------------------------*/ int_f -nh5dwrite_ref_obj_c_b (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, hsize_t_f *dims) +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, hsize_t_f *dims) { int ret_value = -1; herr_t ret; @@ -390,72 +255,10 @@ nh5dwrite_ref_obj_c_b (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_spac * 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 *dims) -{ - 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 = NULL; - int i, n; - - n = (int)*dims; - /* - * Define transfer property - */ - c_xfer_prp = (hid_t)*xfer_prp; - - /* - * 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: h5dwrite_ref_reg_c_b - * 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 * Tuesday, May 14, 2002 - * Modifications: This function was added to accomodate h5dwrite_f with the - * dims argument being of INTEGER(HSIZE_T) type *---------------------------------------------------------------------------*/ int_f -nh5dwrite_ref_reg_c_b (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, hsize_t_f *dims) +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, hsize_t_f *dims) { int ret_value = -1; herr_t ret; @@ -513,89 +316,17 @@ nh5dwrite_ref_reg_c_b (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_spac * Outputs: buf - character data buffer * Returns: 0 on success, -1 on failure * Programmer: Elena Pourmal - * Monday, August 9, 1999 - * Modifications: - *---------------------------------------------------------------------------*/ -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, int_f *dims) -{ - int ret_value = -1; - - /* - * Call h5dread_c function. - */ - ret_value = nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); - - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5dread_c - * Purpose: Call H5Draed to read a dataset - * 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 - * Outputs: buf - data buffer - * Returns: 0 on success, -1 on failure - * Programmer: Elena Pourmal - * Monday, August 9, 1999 - * Modifications: - *---------------------------------------------------------------------------*/ -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, int_f *dims) -{ - 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; - - /* - * Define transfer property - */ - c_xfer_prp = (hid_t)*xfer_prp; - - /* - * 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); - - if (ret < 0) return ret_value; - ret_value = 0; - return ret_value; -} -/*---------------------------------------------------------------------------- - * Name: h5dreadc_c_b - * Purpose: Call h5dread_c_b to read a dataset of characters - * 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 - * Outputs: buf - character data buffer - * Returns: 0 on success, -1 on failure - * Programmer: Elena Pourmal * Wednesday, May 15, 2002 - * Modifications: This function was added to accomodate h5dread_f subroutine - * with the dims parameter being of INTEGER(HSIZE_T_F) size. *---------------------------------------------------------------------------*/ int_f -nh5dreadc_c_b (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, hsize_t_f *dims) +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, hsize_t_f *dims) { int ret_value = -1; /* * Call h5dread_c function. */ - ret_value = nh5dread_c_b(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + ret_value = nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); return ret_value; } @@ -612,11 +343,9 @@ nh5dreadc_c_b (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi * Returns: 0 on success, -1 on failure * Programmer: Elena Pourmal * Wednesday, May 15, 2002 - * Modifications: This function was added to accomodate h5dread_f subroutine - * with the dims parameter being of INTEGER(HSIZE_T_F) size. *---------------------------------------------------------------------------*/ int_f -nh5dread_c_b (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, hsize_t_f *dims) +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, hsize_t_f *dims) { int ret_value = -1; herr_t ret; @@ -645,68 +374,8 @@ nh5dread_c_b (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid 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 *dims) -{ - 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 = NULL; - int i, n; - n = (int)*dims; - /* - * Define transfer property - */ - c_xfer_prp = (hid_t)*xfer_prp; - - /* - * 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_obj_c_b - * 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 @@ -717,11 +386,9 @@ nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i * Returns: 0 on success, -1 on failure * Programmer: Elena Pourmal * Wednesday, May 15, 2002 - * Modifications: This function was added to accomodate h5dread_f subroutine - * with the dims parameter being of INTEGER(HSIZE_T_F) size. *---------------------------------------------------------------------------*/ int_f -nh5dread_ref_obj_c_b (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, hsize_t_f *dims) +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, hsize_t_f *dims) { int ret_value = -1; herr_t ret; @@ -776,70 +443,10 @@ nh5dread_ref_obj_c_b (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space * 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 *dims) -{ - 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 = NULL; - int i, n; - n = (int)*dims; - /* - * Define transfer property - */ - c_xfer_prp = (hid_t)*xfer_prp; - - /* - * 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: h5dread_ref_reg_c_b - * 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 * Wednesday, May 15, 2002 - * Modifications: This function was added to accomodate h5dread_f subroutine - * with the dims parameter being of INTEGER(HSIZE_T_F) size. *---------------------------------------------------------------------------*/ int_f -nh5dread_ref_reg_c_b (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, hsize_t_f *dims) +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, hsize_t_f *dims) { int ret_value = -1; herr_t ret; |