mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-25 17:00:45 +08:00
[svn-r26241] Fixed issue with default 8 byte integers using xlf compilers.
This commit is contained in:
parent
fc082e60f3
commit
3eeed2f1d5
@ -1738,21 +1738,23 @@ nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id)
|
||||
|
||||
/****if* H5Tf/h5tenum_insert_c
|
||||
* NAME
|
||||
* h5tenum_insert_c
|
||||
* h5tenum_insert_c
|
||||
* PURPOSE
|
||||
* Call H5Tenum_insert to insert a new enumeration datatype member.
|
||||
* Call H5Tenum_insert to insert a new enumeration datatype member.
|
||||
* INPUTS
|
||||
* type_id - identifier of the datatype
|
||||
* name - Name of the new member
|
||||
* namelen - length of the name
|
||||
* value - value of the new member
|
||||
* type_id - identifier of the datatype
|
||||
* name - Name of the new member
|
||||
* namelen - length of the name
|
||||
* value - value of the new member
|
||||
* RETURNS
|
||||
* 0 on success, -1 on failure
|
||||
* 0 on success, -1 on failure
|
||||
* AUTHOR
|
||||
* XIANGYANG SU
|
||||
* Thursday, February 3, 2000
|
||||
* Thursday, February 3, 2000
|
||||
* HISTORY
|
||||
*
|
||||
* 'value' is no longer cast into an int. If the user passes in an 8 byte integer then
|
||||
* it should not be cast to an int (which might be 4 bytes). Instead the value
|
||||
* is written as the size of an int_f.
|
||||
* SOURCE
|
||||
*/
|
||||
|
||||
@ -1761,19 +1763,18 @@ nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value)
|
||||
/******/
|
||||
{
|
||||
int ret_value = -1;
|
||||
hid_t c_type_id;
|
||||
char* c_name;
|
||||
size_t c_namelen;
|
||||
int_f c_value;
|
||||
herr_t error;
|
||||
int_f c_value;
|
||||
|
||||
c_namelen = *namelen;
|
||||
c_name = (char *)HD5f2cstring(name, c_namelen);
|
||||
if (c_name == NULL) return ret_value;
|
||||
|
||||
c_type_id = (hid_t)*type_id;
|
||||
c_value = (int)*value;
|
||||
error = H5Tenum_insert(c_type_id, c_name, &c_value);
|
||||
c_value = *value;
|
||||
error = H5Tenum_insert((hid_t)*type_id, c_name, &c_value);
|
||||
|
||||
HDfree(c_name);
|
||||
if(error < 0) return ret_value;
|
||||
|
||||
@ -2437,7 +2438,7 @@ h5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void
|
||||
* 0 on success, -1 on failure
|
||||
* AUTHOR
|
||||
* M. Scot Breitenfeld
|
||||
* 2/6/2015
|
||||
* February 6, 2015
|
||||
*
|
||||
* SOURCE
|
||||
*/
|
||||
|
@ -118,7 +118,7 @@ CONTAINS
|
||||
|
||||
END SUBROUTINE h5tconvert_f
|
||||
!
|
||||
!****s* (F03) H5T/h5tenaum_insert_f03
|
||||
!****s* (F03) H5T/h5tenum_insert_f90
|
||||
!
|
||||
! NAME
|
||||
! h5tenum_insert_f
|
||||
@ -146,7 +146,7 @@ CONTAINS
|
||||
IMPLICIT NONE
|
||||
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
|
||||
CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member
|
||||
INTEGER, INTENT(IN) :: value !value of the new member
|
||||
INTEGER, INTENT(IN) :: value ! value of the new member
|
||||
INTEGER, INTENT(OUT) :: hdferr ! Error code
|
||||
!*****
|
||||
INTEGER :: namelen
|
||||
@ -169,7 +169,7 @@ CONTAINS
|
||||
END SUBROUTINE h5tenum_insert_f90
|
||||
|
||||
!
|
||||
!****s* (F03) H5T/h5tenaum_insert_f03
|
||||
!****s* (F03) H5T/h5tenum_insert_f03
|
||||
!
|
||||
! NAME
|
||||
! h5tenum_insert_f
|
||||
|
@ -44,7 +44,7 @@ CONTAINS
|
||||
!****s* H5T/h5tenum_insert_f
|
||||
!
|
||||
! NAME
|
||||
! h5tenaum_insert_f
|
||||
! h5tenum_insert_f
|
||||
!
|
||||
! PURPOSE
|
||||
! Inserts a new enumeration datatype member.
|
||||
|
@ -1428,7 +1428,11 @@ SUBROUTINE t_enum(total_error)
|
||||
f_ptr = C_LOC(val(1))
|
||||
CALL H5Tconvert_f(M_BASET, F_BASET, INT(1,SIZE_T), f_ptr, error)
|
||||
CALL check("H5Tconvert_f",error, total_error)
|
||||
CALL H5Tenum_insert_f(filetype, TRIM(names(i+1)), val(1), error)
|
||||
IF(i.GE.1)THEN ! test both F90 and F03 APIs
|
||||
CALL H5Tenum_insert_f(filetype, TRIM(names(i+1)), f_ptr, error)
|
||||
ELSE
|
||||
CALL H5Tenum_insert_f(filetype, TRIM(names(i+1)), val(1), error)
|
||||
ENDIF
|
||||
CALL check("H5Tenum_insert_f",error, total_error)
|
||||
ENDDO
|
||||
!
|
||||
@ -3134,7 +3138,7 @@ SUBROUTINE t_enum_conv(total_error)
|
||||
ENUMERATOR :: E1_RED, E1_GREEN, E1_BLUE, E1_WHITE, E1_BLACK
|
||||
END ENUM
|
||||
|
||||
INTEGER :: val
|
||||
INTEGER(KIND(E1_RED)), TARGET :: val
|
||||
|
||||
! Enumerated data array
|
||||
! Some values are out of range for testing. The library should accept them
|
||||
@ -3185,19 +3189,19 @@ SUBROUTINE t_enum_conv(total_error)
|
||||
! Initialize enum data.
|
||||
!
|
||||
val = E1_RED
|
||||
CALL H5Tenum_insert_f(dtype, "RED", val, error)
|
||||
CALL H5Tenum_insert_f(dtype, "RED", C_LOC(val), error)
|
||||
CALL check("h5tenum_insert_f",error, total_error)
|
||||
val = E1_GREEN
|
||||
CALL H5Tenum_insert_f(dtype, "GREEN", val, error)
|
||||
CALL H5Tenum_insert_f(dtype, "GREEN", C_LOC(val), error)
|
||||
CALL check("h5tenum_insert_f",error, total_error)
|
||||
val = E1_BLUE
|
||||
CALL H5Tenum_insert_f(dtype, "BLUE", val, error)
|
||||
CALL H5Tenum_insert_f(dtype, "BLUE", C_LOC(val), error)
|
||||
CALL check("h5tenum_insert_f",error, total_error)
|
||||
val = E1_WHITE
|
||||
CALL H5Tenum_insert_f(dtype, "WHITE", val, error)
|
||||
CALL H5Tenum_insert_f(dtype, "WHITE", C_LOC(val), error)
|
||||
CALL check("h5tenum_insert_f",error, total_error)
|
||||
val = E1_BLACK
|
||||
CALL H5Tenum_insert_f(dtype, "BLACK", val, error)
|
||||
CALL H5Tenum_insert_f(dtype, "BLACK", C_LOC(val), error)
|
||||
CALL check("h5tenum_insert_f",error, total_error)
|
||||
!
|
||||
! Create dataspace. Setting maximum size to be the current size.
|
||||
|
Loading…
x
Reference in New Issue
Block a user