summaryrefslogtreecommitdiffstats
path: root/fortran
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2012-10-03 00:53:21 (GMT)
committerScot Breitenfeld <brtnfld@hdfgroup.org>2012-10-03 00:53:21 (GMT)
commit3e59374ccd0c7cbb671dc72c34ec1a6a9123bc5b (patch)
tree41023f4827cb254156451092cd4e43ab16fd85f4 /fortran
parent7648354b80e5e914f99cb6dece5d38d354c5c736 (diff)
downloadhdf5-3e59374ccd0c7cbb671dc72c34ec1a6a9123bc5b.zip
hdf5-3e59374ccd0c7cbb671dc72c34ec1a6a9123bc5b.tar.gz
hdf5-3e59374ccd0c7cbb671dc72c34ec1a6a9123bc5b.tar.bz2
[svn-r22854] Fixed issues with default 8-byte real and default 8-byte integers and the new H5O routines.
Tested: jam (gcc,intel)
Diffstat (limited to 'fortran')
-rw-r--r--fortran/src/H5Of.c1
-rw-r--r--fortran/src/H5Off.f902
-rw-r--r--fortran/src/H5Off_F03.f904
-rw-r--r--fortran/src/H5f90proto.h2
-rw-r--r--fortran/test/tH5O_F03.f906
-rw-r--r--fortran/test/tH5T_F03.f9012
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