From 3e59374ccd0c7cbb671dc72c34ec1a6a9123bc5b Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Tue, 2 Oct 2012 19:53:21 -0500 Subject: [svn-r22854] Fixed issues with default 8-byte real and default 8-byte integers and the new H5O routines. Tested: jam (gcc,intel) --- fortran/src/H5Of.c | 1 - fortran/src/H5Off.f90 | 2 +- fortran/src/H5Off_F03.f90 | 4 ++-- fortran/src/H5f90proto.h | 2 +- fortran/test/tH5O_F03.f90 | 6 +++--- fortran/test/tH5T_F03.f90 | 12 ++++++++---- 6 files changed, 15 insertions(+), 12 deletions(-) diff --git a/fortran/src/H5Of.c b/fortran/src/H5Of.c index 59f9a3d..8e75989 100644 --- a/fortran/src/H5Of.c +++ b/fortran/src/H5Of.c @@ -32,7 +32,6 @@ fill_h5o_info_t_f(H5O_info_t Oinfo, H5O_info_t_f *object_info) { object_info->fileno = Oinfo.fileno; object_info->addr = (haddr_t_f)Oinfo.addr; - object_info->type = (int_f)Oinfo.type; object_info->rc = (int_f)Oinfo.rc; diff --git a/fortran/src/H5Off.f90 b/fortran/src/H5Off.f90 index 2d8509f..ce8c55c 100644 --- a/fortran/src/H5Off.f90 +++ b/fortran/src/H5Off.f90 @@ -647,7 +647,7 @@ CONTAINS INTEGER , INTENT(IN) :: index_type INTEGER , INTENT(IN) :: order INTEGER(HSIZE_T), INTENT(IN) :: n - INTEGER(HID_T) , INTENT(IN) :: obj_id + INTEGER(HID_T) , INTENT(OUT) :: obj_id INTEGER(HID_T) , INTENT(IN) :: lapl_id_default END FUNCTION h5oopen_by_idx_c diff --git a/fortran/src/H5Off_F03.f90 b/fortran/src/H5Off_F03.f90 index dbd674a..f4ddd3e 100644 --- a/fortran/src/H5Off_F03.f90 +++ b/fortran/src/H5Off_F03.f90 @@ -82,9 +82,9 @@ MODULE H5O_PROVISIONAL ENDTYPE meta_size_t TYPE, BIND(C) :: h5o_info_t - INTEGER(c_long) :: fileno ! File number that object is located in + INTEGER(C_LONG) :: fileno ! File number that object is located in INTEGER(haddr_t) :: addr ! Object address in file - INTEGER :: type ! Basic object type (group, dataset, etc.) + INTEGER(C_INT) :: type ! Basic object type (group, dataset, etc.) INTEGER :: rc ! Reference count of object INTEGER, DIMENSION(8) :: atime ! Access time ! -- NOTE -- diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h index b1e650a..9340c2a 100644 --- a/fortran/src/H5f90proto.h +++ b/fortran/src/H5f90proto.h @@ -61,7 +61,7 @@ typedef struct H5O_hdr_info_t_f { typedef struct H5O_info_t_f { unsigned long fileno; /* File number that object is located in */ haddr_t_f addr; /* Object address in file */ - int_f type; /* Basic object type (group, dataset, etc.) */ + int type; /* Basic object type (group, dataset, etc.) */ int_f rc; /* Reference count of object */ int_f atime[8]; /* Access time */ int_f mtime[8]; /* Modification time */ diff --git a/fortran/test/tH5O_F03.f90 b/fortran/test/tH5O_F03.f90 index e969c4a..f060a7d 100644 --- a/fortran/test/tH5O_F03.f90 +++ b/fortran/test/tH5O_F03.f90 @@ -54,11 +54,11 @@ MODULE visit_cb ! Object visit structs TYPE, bind(c) :: obj_visit_t CHARACTER(LEN=1), DIMENSION(1:180) :: path ! Path to object - INTEGER(c_int) :: type_obj ! type of object + INTEGER :: type_obj ! type of object END TYPE obj_visit_t TYPE, bind(c) :: ovisit_ud_t - INTEGER(c_int) :: idx ! Index in object visit structure + INTEGER :: idx ! Index in object visit structure TYPE(obj_visit_t), DIMENSION(1:info_size) :: info ! Pointer to the object visit structure to use END TYPE ovisit_ud_t @@ -74,7 +74,7 @@ CONTAINS TYPE(ovisit_ud_t) :: op_data INTEGER :: len, i - INTEGER(C_INT) :: idx + INTEGER :: idx visit_obj_cb = 0 diff --git a/fortran/test/tH5T_F03.f90 b/fortran/test/tH5T_F03.f90 index dbd8b0a..1c4da8b 100644 --- a/fortran/test/tH5T_F03.f90 +++ b/fortran/test/tH5T_F03.f90 @@ -2918,8 +2918,9 @@ SUBROUTINE setup_buffer(data_in, line_lengths, char_type) INTEGER, DIMENSION(1:3) :: letters CHARACTER(LEN=3) :: lets CHARACTER(KIND=C_CHAR,LEN=*) :: char_type + CHARACTER(KIND=C_CHAR,LEN=1) :: char_tmp INTEGER :: i, j, n, ff - + ! Convert the letters and special character to integers lets = 'abc' @@ -2929,15 +2930,18 @@ SUBROUTINE setup_buffer(data_in, line_lengths, char_type) j = 1 DO i=1,n-1 IF( j .EQ. 4 )THEN - WRITE(data_in(i:i),'(A1)') ff + WRITE(char_tmp,'(A1)') ff + data_in(i:i) = char_tmp ELSE - WRITE(data_in(i:i),'(A1)') letters(j) + WRITE(char_tmp,'(A1)') letters(j) + data_in(i:i) = char_tmp ENDIF line_lengths(i) = LEN_TRIM(data_in(i)) j = j + 1 IF( j .EQ. 5 ) j = 1 END DO - WRITE(data_in(n:n),'(A1)') ff + WRITE(char_tmp,'(A1)') ff + data_in(n:n) = char_tmp line_lengths(n) = 1 END SUBROUTINE setup_buffer -- cgit v0.12