summaryrefslogtreecommitdiffstats
path: root/fortran
diff options
context:
space:
mode:
authorElena Pourmal <epourmal@hdfgroup.org>2000-10-24 20:52:00 (GMT)
committerElena Pourmal <epourmal@hdfgroup.org>2000-10-24 20:52:00 (GMT)
commitac1c2474525b5e96dd429b9fba4396b133ae2d4b (patch)
tree97aa9fbd0043db46381d515a6c6006ca68d71765 /fortran
parent5b442958f8171e367de47d3aaf126804edf41175 (diff)
downloadhdf5-ac1c2474525b5e96dd429b9fba4396b133ae2d4b.zip
hdf5-ac1c2474525b5e96dd429b9fba4396b133ae2d4b.tar.gz
hdf5-ac1c2474525b5e96dd429b9fba4396b133ae2d4b.tar.bz2
[svn-r2729]
Purpose: Bug fix Description: Attribute test failed on O2K. h5aget_name_f function could not return correct attribute name. Solution: size function parameter had wrong datatype in F90 subroutine. Fixed it to be of INTEGER(SIZE_T) type. Platforms tested: O2K, Linux
Diffstat (limited to 'fortran')
-rw-r--r--fortran/src/H5Af.c9
-rw-r--r--fortran/src/H5Aff.f904
2 files changed, 6 insertions, 7 deletions
diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c
index 504e937..ad13910 100644
--- a/fortran/src/H5Af.c
+++ b/fortran/src/H5Af.c
@@ -412,7 +412,7 @@ nh5aget_name_c(hid_t_f *attr_id, size_t_f *bufsize, _fcd buf)
* Allocate buffer to hold name of an attribute
*/
c_bufsize = *bufsize;
- c_buf = (char *)HDmalloc(c_bufsize +1);
+ c_buf = (char *)HDmalloc((int)c_bufsize +1);
if (c_buf == NULL) return ret_value;
/*
@@ -425,9 +425,8 @@ nh5aget_name_c(hid_t_f *attr_id, size_t_f *bufsize, _fcd buf)
/*
* Convert C name to FORTRAN and place it in the given buffer
*/
-
- HDpackFstring(c_buf, _fcdtocp(buf), c_bufsize);
- HDfree( c_buf);
- ret_value = c_size;
+ HDpackFstring(c_buf, _fcdtocp(buf), (int)c_bufsize);
+ HDfree(c_buf);
+ ret_value = (int_f)c_size;
return ret_value;
}
diff --git a/fortran/src/H5Aff.f90 b/fortran/src/H5Aff.f90
index 1bc2225..506048f 100644
--- a/fortran/src/H5Aff.f90
+++ b/fortran/src/H5Aff.f90
@@ -979,8 +979,8 @@
SUBROUTINE h5aget_name_f(attr_id, size, buf, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER, INTENT(IN) :: size ! Buffer size
- CHARACTER(LEN=*), INTENT(OUT) :: buf
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Buffer size
+ CHARACTER(LEN=*), INTENT(INOUT) :: buf
! Buffer to hold attribute name
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! name length is successful,