summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5Af.c
diff options
context:
space:
mode:
Diffstat (limited to 'fortran/src/H5Af.c')
-rw-r--r--fortran/src/H5Af.c800
1 files changed, 13 insertions, 787 deletions
diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c
index 5fdc27e..0be225b 100644
--- a/fortran/src/H5Af.c
+++ b/fortran/src/H5Af.c
@@ -35,7 +35,7 @@
*---------------------------------------------------------------------------*/
int_f
nh5acreate_c(hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *type_id,
- hid_t_f *space_id, hid_t_f *crt_prp, hid_t_f *aapl, hid_t_f *attr_id)
+ hid_t_f *space_id, hid_t_f *crt_prp, hid_t_f *attr_id)
{
char *c_name = NULL; /* Buffer to hold C string */
int_f ret_value = 0; /* Return value */
@@ -49,7 +49,7 @@ nh5acreate_c(hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *type_id,
/*
* Call H5Acreate2 function.
*/
- if((*attr_id = (hid_t_f)H5Acreate2((hid_t)*obj_id, c_name, (hid_t)*type_id, (hid_t)*space_id, (hid_t)*crt_prp, (hid_t)*aapl)) < 0)
+ if((*attr_id = (hid_t_f)H5Acreate2((hid_t)*obj_id, c_name, (hid_t)*type_id, (hid_t)*space_id, (hid_t)*crt_prp, H5P_DEFAULT)) < 0)
HGOTO_DONE(FAIL);
done:
@@ -959,7 +959,7 @@ done:
* Name: h5aget_name_c
* Purpose: Call H5Aget_name to get attribute's name
* Inputs: attr_id - attribute identifier
- * bufsize - size of the buffer
+ * bufsize -size of the buffer
* Outputs: buf - buffer to hold the name
* Returns: 0 on success, -1 on failure
* Programmer: Elena Pourmal
@@ -969,801 +969,27 @@ done:
int_f
nh5aget_name_c(hid_t_f *attr_id, size_t_f *bufsize, _fcd buf)
{
- size_t c_bufsize;
- char *c_buf=NULL; /* Buffer to hold C string */
- int_f ret_value=0; /* Return value */
-
- c_bufsize = (size_t)*bufsize+1;
- /*
- * Allocate buffer to hold name of an attribute
- */
- if ((c_buf = HDmalloc(c_bufsize)) == NULL)
- HGOTO_DONE(FAIL);
-
- /*
- * Call H5Aget_name function
- */
-
- if ((ret_value = (int_f)H5Aget_name((hid_t)*attr_id, c_bufsize, c_buf)) < 0)
- HGOTO_DONE(FAIL);
-
- /*
- * Convert C name to FORTRAN and place it in the given buffer
- */
- HD5packFstring(c_buf, _fcdtocp(buf), c_bufsize-1);
-
-done:
- if(c_buf) HDfree(c_buf);
- return ret_value;
-}
-
-/*----------------------------------------------------------------------------
- * Name: h5aget_storage_size_c
- * Purpose: Call H5Aget_storage_size
- * Inputs: attr_id - identifier of an attribute
- * Outputs: size - attributes storage requirements
- * Returns: 0 on success, -1 on failure
- * Programmer: M. S. Breitenfeld
- * January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
-
-int_f
-nh5aget_storage_size_c ( hid_t_f *attr_id, hsize_t_f *size)
-{
- int_f ret_value=0; /* Return value */
-
- if ((*size = (hsize_t_f)H5Aget_storage_size((hid_t)*attr_id)) < 0)
- HGOTO_DONE(FAIL);
-
-done:
- return ret_value;
-}
-
-/*----------------------------------------------------------------------------
- * Name: h5aget_create_plist_c
- * Purpose: Call H5Aget_create_plist
- * Inputs: attr_id - identifier of an attribute
- * Outputs: creation_prop_id - Identifier for the attribute’s creation property
- * Returns: 0 on success, -1 on failure
- * Programmer: M. S. Breitenfeld
- * January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
-
-int_f
-nh5aget_create_plist_c ( hid_t_f *attr_id, hid_t_f *creation_prop_id)
-{
- int_f ret_value=0; /* Return value */
-
- if ((*creation_prop_id = (hid_t_f)H5Aget_create_plist((hid_t)*attr_id)) < 0)
- HGOTO_DONE(FAIL);
-
-done:
- return ret_value;
-}
-
-/*----------------------------------------------------------------------------
- * Name: h5arename_by_name_c
- * Purpose: Calls H5Arename_by_name
- * Inputs: loc_id - Object identifier
- * obj_name - Name of object, relative to location,
- * whose attribute is to be renamed
- * obj_name_len - Object name length
- * old_attr_name - Prior attribute name
- * old_attr_name_len - Prior attribute name length
- * new_attr_name - New attribute name
- * new_attr_name_len - New attribute name length
- * lapl_id - Link access property list identifier
- * Outputs: N/A
- * Returns: 0 on success, -1 on failure
- * Programmer: M. S. Breitenfeld
- * January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
-
-int_f
-nh5arename_by_name_c( hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
- _fcd old_attr_name, size_t_f *old_attr_namelen,
- _fcd new_attr_name, size_t_f *new_attr_namelen,
- hid_t_f *lapl_id )
-{
- char *c_obj_name = NULL; /* Buffer to hold C string */
- char *c_old_attr_name = NULL; /* Buffer to hold C string */
- char *c_new_attr_name = NULL; /* Buffer to hold C string */
+ char *c_buf=NULL; /* Buffer to hold C string */
int_f ret_value=0; /* Return value */
- /*
- * Convert FORTRAN name to C name
- */
- if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL)
- HGOTO_DONE(FAIL);
- if((c_old_attr_name = HD5f2cstring(old_attr_name, (size_t)*old_attr_namelen)) == NULL)
- HGOTO_DONE(FAIL);
- if((c_new_attr_name = HD5f2cstring(new_attr_name, (size_t)*new_attr_namelen)) == NULL)
- HGOTO_DONE(FAIL);
-
- if(H5Arename_by_name((hid_t)*loc_id,c_obj_name,c_old_attr_name,c_new_attr_name,(hid_t)*lapl_id) < 0)
- HGOTO_DONE(FAIL);
-
-done:
- if(c_obj_name)
- HDfree(c_obj_name);
- if(c_old_attr_name)
- HDfree(c_old_attr_name);
- if(c_new_attr_name)
- HDfree(c_new_attr_name);
- return ret_value;
-}
-
-/*----------------------------------------------------------------------------
- * Name: h5aopen_c
- * Purpose: Call H5Aopen to open an attribute
- * Inputs: obj_id - Identifer for object to which attribute is attached
- * attr_name - Attribute access property list
- * attr_namelen - size of attr_name
- * aapl_id - Link access property list
- * Outputs: attr_id - dataset identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * January, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
-int_f
-nh5aopen_c (hid_t_f *obj_id, _fcd attr_name, size_t_f *attr_namelen, hid_t_f *aapl_id, hid_t_f *attr_id)
-{
- char *c_attr_name = NULL; /* Buffer to hold C string */
- int_f ret_value = 0; /* Return value */
-
- /*
- * Convert FORTRAN name to C name
- */
- if((c_attr_name = HD5f2cstring(attr_name, (size_t)*attr_namelen)) == NULL)
- HGOTO_DONE(FAIL);
- /*
- * Call H5Aopen function.
- */
-
- if((*attr_id = (hid_t_f)H5Aopen((hid_t)*obj_id, c_attr_name, (hid_t)*aapl_id)) < 0)
- HGOTO_DONE(FAIL);
-
-done:
- if(c_attr_name)
- HDfree(c_attr_name);
- return ret_value;
-}
-/*----------------------------------------------------------------------------
- * Name: h5adelete_by_name_c
- * Purpose: Call h5adelete_by_name to remove an attribute from a specified location
- * Inputs: loc_id - identifer for object to which attribute is attached
- * obj_name - object identifier
- * obj_namelen - name length
- * attr_name - name of the attribute
- * attr_namelen - name length
- * lapl_id - link access property list
- *
- * Outputs: N/A
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
-int_f
-nh5adelete_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen, hid_t_f *lapl_id)
-{
- char *c_obj_name = NULL; /* Buffer to hold C string */
- char *c_attr_name = NULL; /* Buffer to hold C string */
- int_f ret_value = 0; /* Return value */
-
- /*
- * Convert FORTRAN name to C name
- */
- if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL)
- HGOTO_DONE(FAIL);
- if((c_attr_name = HD5f2cstring(attr_name, (size_t)*attr_namelen)) == NULL)
- HGOTO_DONE(FAIL);
-
- /*
- * Call H5Adelete_by_name function.
- */
- if(H5Adelete_by_name((hid_t)*loc_id, c_obj_name, c_attr_name, (hid_t)*lapl_id) < 0)
- HGOTO_DONE(FAIL);
-
-done:
- if(c_attr_name)
- HDfree(c_attr_name);
- if(c_obj_name)
- HDfree(c_obj_name);
- return ret_value;
-}
-/*----------------------------------------------------------------------------
- * Name: h5adelete_by_idx_c
- * Purpose: Call h5adelete_by_idx
- * Inputs: loc_id - Location or object identifier; may be dataset or group
- * obj_name - object identifier
- * obj_namelen - name length
- * attr_name - name of the attribute
- * attr_namelen - name length
- * lapl_id - link access property list
- *
- * Outputs: N/A
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
-int_f
-nh5adelete_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
- int_f *idx_type, int_f *order, size_t_f *n, hid_t_f *lapl_id)
-{
- char *c_obj_name = NULL; /* Buffer to hold C string */
- H5_index_t c_idx_type;
- H5_iter_order_t c_order;
- int_f ret_value = 0; /* Return value */
-
- /*
- * Convert FORTRAN name to C name
- */
- if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL)
- HGOTO_DONE(FAIL);
-
- c_idx_type = (H5_index_t)*idx_type;
- c_order = (H5_iter_order_t)*order;
-
- /*
- * Call H5Adelete_by_name function.
- */
-
- if(H5Adelete_by_idx((hid_t)*loc_id, c_obj_name, c_idx_type, c_order, (hsize_t)*n, (hid_t)*lapl_id) < 0)
- HGOTO_DONE(FAIL);
-
-done:
- if(c_obj_name)
- HDfree(c_obj_name);
- return ret_value;
-}
-/*----------------------------------------------------------------------------
- * Name: h5aget_name_by_idx_c
- * Purpose: Call h5aget_name_by_idx
- * Inputs:
- *
- * loc_id - Identifer for object to which attribute is attached
- * obj_name - Name of object, relative to location,
- * from which attribute is to be removed *TEST* check NULL
- * idx_type - Type of index; Possible values are:
- * H5_INDEX_UNKNOWN - Unknown index type
- * H5_INDEX_NAME - Index on names
- * H5_INDEX_CRT_ORDER - Index on creation order
- * H5_INDEX_N - Number of indices defined
- *
- * order - Order in which to iterate over index; Possible values are:
- * H5_ITER_UNKNOWN - Unknown order
- * H5_ITER_INC - Increasing order
- * H5_ITER_DEC - Decreasing order
- * H5_ITER_NATIVE - No particular order, whatever is fastest
- * H5_ITER_N - Number of iteration orders
- *
- * n - Attribute’s position in index
- * attr_id - Attribute identifier
- * size - Buffer size ! *TEST* check for 0 value *CHECK* should this return the correct value
- *
- * lapl_id - Link access property list
- * hdferr - Error code:
- * Returns attribute name size, -1 if fail
- *
- * Outputs: name - Attribute name
- *
- * Returns: Size of buffer on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
-int_f
-nh5aget_name_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
- int_f *idx_type, int_f *order, size_t_f *n, _fcd name,
- size_t_f *size, hid_t_f *lapl_id)
-{
- char *c_obj_name = NULL; /* Buffer to hold C string */
- H5_index_t c_idx_type;
- H5_iter_order_t c_order;
- int_f ret_value = -1; /* Return value */
- ssize_t c_size;
- size_t c_buf_size;
- char *c_buf =NULL;
/*
- * Convert FORTRAN name to C name
+ * Allocate buffer to hold name of an attribute
*/
- if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL)
- HGOTO_DONE(FAIL);
-
- c_idx_type = (H5_index_t)*idx_type;
- c_order = (H5_iter_order_t)*order;
-
- /*
- * Allocate buffer to hold name of an attribute
- */
- c_buf_size = (size_t)*size + 1;
- c_buf = (char *)HDmalloc(c_buf_size);
- if (c_buf == NULL) return ret_value;
+ if ((c_buf = HDmalloc((size_t)*bufsize +1)) == NULL)
+ HGOTO_DONE(FAIL);
/*
- * Call H5Aget_name_by_idx function.
+ * Call H5Aget_name function
*/
- c_size = H5Aget_name_by_idx((hid_t)*loc_id, c_obj_name, c_idx_type, c_order, (hsize_t)*n, c_buf, c_buf_size,(hid_t)*lapl_id);
-
-/* printf( "In C routine, The attr name is %s %i \n ", c_buf, c_buf_size ); */
-/* printf( "In C routine, The c_size is %i \n ", c_size ); */
-
- if (c_size < 0) goto done;
+ if ((ret_value = (int_f)H5Aget_name((hid_t)*attr_id, (size_t)*bufsize, c_buf)) < 0)
+ HGOTO_DONE(FAIL);
/*
* Convert C name to FORTRAN and place it in the given buffer
*/
- HD5packFstring(c_buf, _fcdtocp(name), c_buf_size);
- *size = (size_t_f)c_size;
- ret_value = 0;
-
-done:
- if(c_obj_name)
- HDfree(c_obj_name);
- HDfree(c_buf);
- return ret_value;
-}
-
-/*----------------------------------------------------------------------------
- * Name: h5aopen_by_idx_c
- * Purpose: Call H5Aopen_by_idx
- * Inputs: loc_id - Object identifier
- * obj_name - Name of object to which attribute is attached
- * obj_namelen - name length
- * idx_type - Type of index; Possible values are:
- * H5_INDEX_UNKNOWN - Unknown index type
- * H5_INDEX_NAME - Index on names
- * H5_INDEX_CRT_ORDER - Index on creation order
- * H5_INDEX_N - Number of indices defined
- *
- * order - Order in which to iterate over index; Possible values are:
- * H5_ITER_UNKNOWN - Unknown order
- * H5_ITER_INC - Increasing order
- * H5_ITER_DEC - Decreasing order
- * H5_ITER_NATIVE - No particular order, whatever is fastest
- * H5_ITER_N - Number of iteration orders
- *
- * n - Attribute’s position in index
- * aapl_id - Attribute access property list
- * lapl_id - Link access property list
- * Outputs: attr_id - attribute identifer
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
-int_f
-nh5aopen_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
- int_f *idx_type, int_f *order, size_t_f *n, hid_t_f *aapl_id, hid_t_f *lapl_id, hid_t_f *attr_id )
-{
- char *c_obj_name = NULL; /* Buffer to hold C string */
- H5_index_t c_idx_type;
- H5_iter_order_t c_order;
- int_f ret_value = 0; /* Return value */
-
- /*
- * Convert FORTRAN name to C name
- */
- if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL)
- HGOTO_DONE(FAIL);
-
- c_idx_type = (H5_index_t)*idx_type;
- c_order = (H5_iter_order_t)*order;
-
- /*
- * Call H5Aopen_by_idx function.
- */
- if((*attr_id = (hid_t_f)H5Aopen_by_idx((hid_t)*loc_id, c_obj_name, c_idx_type, c_order, (hsize_t)*n, (hid_t)*aapl_id, (hid_t)*lapl_id)) < 0)
- HGOTO_DONE(FAIL);
-done:
- if(c_obj_name)
- HDfree(c_obj_name);
- return ret_value;
-}
-
-/*----------------------------------------------------------------------------
- * Name: h5aget_info_c
- * Purpose: Call H5Aget_info
- * Inputs: loc_id - Object identifier
- * Outputs:
- * corder_valid - Indicates whether the the creation order data is valid for this attribute
- * corder - Is a positive integer containing the creation order of the attribute
- * cset - Indicates the character set used for the attribute’s name
- * data_size - indicates the size, in the number of characters, of the attribute
- *
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
-int_f
-nh5aget_info_c (hid_t_f *loc_id, int_f *corder_valid, int_f *corder,
- int_f *cset, hsize_t_f *data_size )
-{
-
- int_f ret_value = 0; /* Return value */
- H5A_info_t ainfo;
-
-
- /*
- * Call H5Aget_info function.
- */
- if(H5Aget_info((hid_t)*loc_id,&ainfo) < 0)
- HGOTO_DONE(FAIL);
-
- /* Unpack the structure */
-
- *corder_valid = 0;
- if(ainfo.corder_valid > 0) *corder_valid = 1;
-
- *corder = (int_f)ainfo.corder;
- *cset = (int_f)ainfo.cset;
- *data_size = (hsize_t)ainfo.data_size;
-
-done:
- return ret_value;
-}
-
-/*----------------------------------------------------------------------------
- * Name: h5aget_info_by_idx_c
- * Purpose: Call H5Aget_info_by_idx
- * Inputs: loc_id - Object identifier
- * obj_name - Name of object to which attribute is attached
- * obj_namelen - name length
- * idx_type - Type of index; Possible values are:
- * H5_INDEX_UNKNOWN - Unknown index type
- * H5_INDEX_NAME - Index on names
- * H5_INDEX_CRT_ORDER - Index on creation order
- * H5_INDEX_N - Number of indices defined
- *
- * order - Order in which to iterate over index; Possible values are:
- * H5_ITER_UNKNOWN - Unknown order
- * H5_ITER_INC - Increasing order
- * H5_ITER_DEC - Decreasing order
- * H5_ITER_NATIVE - No particular order, whatever is fastest
- * H5_ITER_N - Number of iteration orders
- *
- * n - Attribute’s position in index
- * lapl_id - Link access property list
- * Outputs:
- * corder_valid - Indicates whether the the creation order data is valid for this attribute
- * corder - Is a positive integer containing the creation order of the attribute
- * cset - Indicates the character set used for the attribute’s name
- * data_size - indicates the size, in the number of characters, of the attribute
- *
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
-int_f
-nh5aget_info_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
- int_f *idx_type, int_f *order, size_t_f *n, hid_t_f *lapl_id,
- int_f *corder_valid, int_f *corder,
- int_f *cset, hsize_t_f *data_size )
-{
- char *c_obj_name = NULL; /* Buffer to hold C string */
- H5_index_t c_idx_type;
- H5_iter_order_t c_order;
- int_f ret_value = 0; /* Return value */
- H5A_info_t ainfo;
-
- /*
- * Convert FORTRAN name to C name
- */
- if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL)
- HGOTO_DONE(FAIL);
-
- c_idx_type = (H5_index_t)*idx_type;
- c_order = (H5_iter_order_t)*order;
- /*
- * Call H5Ainfo_by_idx function.
- */
- if(H5Aget_info_by_idx((hid_t)*loc_id, c_obj_name, c_idx_type, c_order, (hsize_t)*n,
- &ainfo, (hid_t)*lapl_id) < 0)
- HGOTO_DONE(FAIL);
-
- /* Unpack the structure */
-
- *corder_valid = 0;
- if(ainfo.corder_valid > 0) *corder_valid = 1;
-
- *corder = (int_f)ainfo.corder;
- *cset = (int_f)ainfo.cset;
- *data_size = (hsize_t)ainfo.data_size;
-
-done:
- return ret_value;
-}
-
-/*----------------------------------------------------------------------------
- * Name: h5aget_info_by_name_c
- * Purpose: Call H5Aget_info_by_name
- * Inputs: loc_id - Object identifier
- * obj_name - Name of object to which attribute is attached
- * obj_namelen - name length
- * attr_name - Attribute name
- * attr_namelen - attribute name length
- * lapl_id - Link access property list
- * Outputs:
- * corder_valid - Indicates whether the the creation order data is valid for this attribute
- * corder - Is a positive integer containing the creation order of the attribute
- * cset - Indicates the character set used for the attribute’s name
- * data_size - indicates the size, in the number of characters, of the attribute
- *
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
-int_f
-nh5aget_info_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
- _fcd attr_name, size_t_f *attr_namelen, hid_t_f *lapl_id,
- int_f *corder_valid, int_f *corder,
- int_f *cset, hsize_t_f *data_size )
-{
- char *c_obj_name = NULL; /* Buffer to hold C string */
- char *c_attr_name = NULL; /* Buffer to hold C string */
- int_f ret_value = 0; /* Return value */
- H5A_info_t ainfo;
-
- /*
- * Convert FORTRAN name to C name
- */
- if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL)
- HGOTO_DONE(FAIL);
- if((c_attr_name = HD5f2cstring(attr_name, (size_t)*attr_namelen)) == NULL)
- HGOTO_DONE(FAIL);
-
- /*
- * Call H5Ainfo_by_name function.
- */
- if(H5Aget_info_by_name((hid_t)*loc_id, c_obj_name, c_attr_name,
- &ainfo, (hid_t)*lapl_id) < 0)
- HGOTO_DONE(FAIL);
-
- /* Unpack the structure */
-
- *corder_valid = 0;
- if(ainfo.corder_valid > 0) *corder_valid = 1;
-
- *corder = (int_f)ainfo.corder;
- *cset = (int_f)ainfo.cset;
- *data_size = (hsize_t)ainfo.data_size;
-
-done:
- return ret_value;
-}
-
-/*----------------------------------------------------------------------------
- * Name: h5acreate_by_name_c
- * Purpose: Call h5acreate_by_name
-
- * Inputs:
- * loc_id - Object identifier
- * obj_name - Name of object to which attribute is attached
- * obj_namelen - name length
- * attr_name - Attribute name
- * attr_namelen - attribute name length
- * type_id - Attribute datatype identifier
- * space_id - Attribute dataspace identifier
- * acpl_id - Attribute creation property list identifier (Currently not used.)
- * aapl_id - Attribute access property list identifier (Currently not used.)
- * lapl_id - Link access property list
- *
- * Outputs:
- * attr - an attribute identifier
- *
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * February, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
-int_f
-nh5acreate_by_name_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
- _fcd attr_name, size_t_f *attr_namelen, hid_t_f *type_id,
- hid_t_f *space_id, hid_t_f *acpl_id, hid_t_f *aapl_id,
- hid_t_f *lapl_id, hid_t_f *attr_id )
-{
- char *c_obj_name = NULL; /* Buffer to hold C string */
- char *c_attr_name = NULL; /* Buffer to hold C string */
- int_f ret_value = 0; /* Return value */
-
- /*
- * Convert FORTRAN name to C name
- */
- if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL)
- HGOTO_DONE(FAIL);
- if((c_attr_name = HD5f2cstring(attr_name, (size_t)*attr_namelen)) == NULL)
- HGOTO_DONE(FAIL);
-
- /*
- * Call H5Acreate_by_name function.
- */
- if((*attr_id = (hid_t_f)H5Acreate_by_name((hid_t)*loc_id, c_obj_name, c_attr_name,
- (hid_t)*type_id, (hid_t)*space_id,(hid_t)*acpl_id,(hid_t)*aapl_id,(hid_t)*lapl_id )) < 0)
- HGOTO_DONE(FAIL);
-
-done:
- if(c_obj_name)
- HDfree(c_obj_name);
- if(c_attr_name)
- HDfree(c_attr_name);
- return ret_value;
-}
-
-/*----------------------------------------------------------------------------
- * Name: h5aexists_c
- * Purpose: CAll h5aexists
- * Inputs:
- * obj_id - Object identifier
- * attr_name - Attribute name
- * Outputs:
- * attr_exists_c - returns a positive value, for TRUE, or 0 (zero), for FALSE.
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * February, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
-int_f
-nh5aexists_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *attr_exists)
-{
- char *c_name = NULL; /* Buffer to hold C string */
- int_f ret_value = 0; /* Return value */
-
- /*
- * Convert FORTRAN name to C name
- */
- if((c_name = HD5f2cstring(name, (size_t)*namelen)) == NULL)
- HGOTO_DONE(FAIL);
-
- /*
- * Call H5Aexists function.
- */
- if((*attr_exists = (hid_t_f)H5Aexists((hid_t)*obj_id, c_name)) < 0)
- HGOTO_DONE(FAIL);
-
-done:
- if(c_name)
- HDfree(c_name);
- return ret_value;
-}
-
-/*----------------------------------------------------------------------------
- * Name: h5aexists_by_name_c
- * Purpose: CAll H5Aexists_by_name
- * Inputs:
- * loc_id - Location identifier
- * obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
- * attr_name - Attribute name
- * lapl_id - Link access property list identifier
- * Outputs:
- * attr_exists_c - returns a positive value, for TRUE, or 0 (zero), for FALSE.
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * February, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
-int_f
-nh5aexists_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen,
- hid_t_f *lapl_id, hid_t_f *attr_exists)
-{
- char *c_obj_name = NULL; /* Buffer to hold object name C string */
- char *c_attr_name = NULL; /* Buffer to hold attribute name C string */
- int_f ret_value = 0; /* Return value */
-
- /*
- * Convert FORTRAN name to C name
- */
- if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL)
- HGOTO_DONE(FAIL);
- if((c_attr_name = HD5f2cstring(attr_name, (size_t)*attr_namelen)) == NULL)
- HGOTO_DONE(FAIL);
-
- /*
- * Call H5Aexists_by_name function.
- */
- if((*attr_exists = (hid_t_f)H5Aexists_by_name((hid_t)*loc_id, c_obj_name, c_attr_name, (hid_t)*lapl_id)) < 0)
- HGOTO_DONE(FAIL);
-
-done:
- if(c_obj_name)
- HDfree(c_obj_name);
- if(c_attr_name)
- HDfree(c_attr_name);
- return ret_value;
-}
-
-/*----------------------------------------------------------------------------
- * Name: h5aopen_by_name_c
- * Purpose: Call H5Aopen_by_name
- * Inputs:
- * loc_id - Location identifier
- * obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
- * attr_name - Attribute name
- * aapl_id - Attribute access property list (Currently unused; should be passed in as H5P_DEFAULT.)
- * lapl_id - Link access property list identifier
- * Outputs:
- * attr_id - attribute identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * February, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
-int_f
-nh5aopen_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen,
- hid_t_f *aapl_id, hid_t_f *lapl_id, hid_t_f *attr_id)
-{
- char *c_obj_name = NULL; /* Buffer to hold object name C string */
- char *c_attr_name = NULL; /* Buffer to hold attribute name C string */
- int_f ret_value = 0; /* Return value */
-
- /*
- * Convert FORTRAN name to C name
- */
- if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL)
- HGOTO_DONE(FAIL);
- if((c_attr_name = HD5f2cstring(attr_name, (size_t)*attr_namelen)) == NULL)
- HGOTO_DONE(FAIL);
-
- /*
- * Call H5Aopen function.
- */
- if((*attr_id = (hid_t_f)H5Aopen_by_name((hid_t)*loc_id, c_obj_name, c_attr_name, (hid_t)*aapl_id, (hid_t)*lapl_id)) < 0)
- HGOTO_DONE(FAIL);
-
- done:
- if(c_obj_name)
- HDfree(c_obj_name);
- if(c_attr_name)
- HDfree(c_attr_name);
- return ret_value;
-}
-
-/*----------------------------------------------------------------------------
- * Name: h5arename_c
- * Purpose: Calls H5Arename
- * Inputs: loc_id - Object identifier
- * old_attr_name - Prior attribute name
- * old_attr_name_len - Prior attribute name length
- * new_attr_name - New attribute name
- * new_attr_name_len - New attribute name length
- * Outputs: N/A
- * Returns: 0 on success, -1 on failure
- * Programmer: M. S. Breitenfeld
- * January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
-
-int_f
-nh5arename_c( hid_t_f *loc_id,
- _fcd old_attr_name, size_t_f *old_attr_namelen,
- _fcd new_attr_name, size_t_f *new_attr_namelen)
-{
- char *c_old_attr_name = NULL; /* Buffer to hold C string */
- char *c_new_attr_name = NULL; /* Buffer to hold C string */
- int_f ret_value=0; /* Return value */
- /*
- * Convert FORTRAN name to C name
- */
- if((c_old_attr_name = HD5f2cstring(old_attr_name, (size_t)*old_attr_namelen)) == NULL)
- HGOTO_DONE(FAIL);
- if((c_new_attr_name = HD5f2cstring(new_attr_name, (size_t)*new_attr_namelen)) == NULL)
- HGOTO_DONE(FAIL);
-
- if(H5Arename((hid_t)*loc_id,c_old_attr_name,c_new_attr_name) < 0)
- HGOTO_DONE(FAIL);
+ HD5packFstring(c_buf, _fcdtocp(buf), (size_t)*bufsize);
done:
- if(c_old_attr_name)
- HDfree(c_old_attr_name);
- if(c_new_attr_name)
- HDfree(c_new_attr_name);
- return ret_value;
+ if(c_buf) HDfree(c_buf);
+ return ret_value;
}