diff options
-rw-r--r-- | hl/fortran/src/H5LTf90proto.h | 94 | ||||
-rw-r--r-- | hl/fortran/src/H5TBfc.c | 100 | ||||
-rw-r--r-- | hl/fortran/src/H5TBff.F90 | 2460 |
3 files changed, 1256 insertions, 1398 deletions
diff --git a/hl/fortran/src/H5LTf90proto.h b/hl/fortran/src/H5LTf90proto.h index 353b17a..df5bb15 100644 --- a/hl/fortran/src/H5LTf90proto.h +++ b/hl/fortran/src/H5LTf90proto.h @@ -137,42 +137,6 @@ H5_FCDLL void HD5packFstring (char *src, char *dest, size_t len); #define nh5ltget_attribute_ndims_c H5_FC_FUNC_(h5ltget_attribute_ndims_c, H5LTGET_ATTRIBUTE_NDIMS_C) #define nh5ltget_attribute_info_c H5_FC_FUNC_(h5ltget_attribute_info_c, H5LTGET_ATTRIBUTE_INFO_C) #define nh5ltpath_valid_c H5_FC_FUNC_(h5ltpath_valid_c, H5LTPATH_VALID_C) - - -/*------------------------------------------------------------------------- -* Table -*------------------------------------------------------------------------- -*/ -#define nh5tbmake_table_c H5_FC_FUNC_(h5tbmake_table_c, H5TBMAKE_TABLE_C) -#define nh5tbwrite_field_name_c H5_FC_FUNC_(h5tbwrite_field_name_c, H5TBWRITE_FIELD_NAME_C) -#define nh5tbwrite_field_name_int_c H5_FC_FUNC_(h5tbwrite_field_name_int_c, H5TBWRITE_FIELD_NAME_INT_C) -#define nh5tbwrite_field_name_fl_c H5_FC_FUNC_(h5tbwrite_field_name_fl_c, H5TBWRITE_FIELD_NAME_FL_C) -#define nh5tbwrite_field_name_dl_c H5_FC_FUNC_(h5tbwrite_field_name_dl_c, H5TBWRITE_FIELD_NAME_DL_C) -#define nh5tbwrite_field_name_st_c H5_FC_FUNC_(h5tbwrite_field_name_st_c, H5TBWRITE_FIELD_NAME_ST_C) -#define nh5tbread_field_name_c H5_FC_FUNC_(h5tbread_field_name_c, H5TBREAD_FIELD_NAME_C) -#define nh5tbread_field_name_int_c H5_FC_FUNC_(h5tbread_field_name_int_c, H5TBREAD_FIELD_NAME_INT_C) -#define nh5tbread_field_name_fl_c H5_FC_FUNC_(h5tbread_field_name_fl_c, H5TBREAD_FIELD_NAME_FL_C) -#define nh5tbread_field_name_dl_c H5_FC_FUNC_(h5tbread_field_name_dl_c, H5TBREAD_FIELD_NAME_DL_C) -#define nh5tbread_field_name_st_c H5_FC_FUNC_(h5tbread_field_name_st_c, H5TBREAD_FIELD_NAME_ST_C) -#define nh5tbwrite_field_index_c H5_FC_FUNC_(h5tbwrite_field_index_c, H5TBWRITE_FIELD_INDEX_C) -#define nh5tbwrite_field_index_int_c H5_FC_FUNC_(h5tbwrite_field_index_int_c, H5TBWRITE_FIELD_INDEX_INT_C) -#define nh5tbwrite_field_index_fl_c H5_FC_FUNC_(h5tbwrite_field_index_fl_c, H5TBWRITE_FIELD_INDEX_FL_C) -#define nh5tbwrite_field_index_dl_c H5_FC_FUNC_(h5tbwrite_field_index_dl_c, H5TBWRITE_FIELD_INDEX_DL_C) -#define nh5tbwrite_field_index_st_c H5_FC_FUNC_(h5tbwrite_field_index_st_c, H5TBWRITE_FIELD_INDEX_ST_C) -#define nh5tbread_field_index_c H5_FC_FUNC_(h5tbread_field_index_c, H5TBREAD_FIELD_INDEX_C) -#define nh5tbread_field_index_int_c H5_FC_FUNC_(h5tbread_field_index_int_c, H5TBREAD_FIELD_INDEX_INT_C) -#define nh5tbread_field_index_fl_c H5_FC_FUNC_(h5tbread_field_index_fl_c, H5TBREAD_FIELD_INDEX_FL_C) -#define nh5tbread_field_index_dl_c H5_FC_FUNC_(h5tbread_field_index_dl_c, H5TBREAD_FIELD_INDEX_DL_C) -#define nh5tbread_field_index_st_c H5_FC_FUNC_(h5tbread_field_index_st_c, H5TBREAD_FIELD_INDEX_ST_C) -#define nh5tbinsert_field_c H5_FC_FUNC_(h5tbinsert_field_c, H5TBINSERT_FIELD_C) -#define nh5tbinsert_field_int_c H5_FC_FUNC_(h5tbinsert_field_int_c, H5TBINSERT_FIELD_INT_C) -#define nh5tbinsert_field_fl_c H5_FC_FUNC_(h5tbinsert_field_fl_c, H5TBINSERT_FIELD_FL_C) -#define nh5tbinsert_field_dl_c H5_FC_FUNC_(h5tbinsert_field_dl_c, H5TBINSERT_FIELD_DL_C) -#define nh5tbinsert_field_st_c H5_FC_FUNC_(h5tbinsert_field_st_c, H5TBINSERT_FIELD_ST_C) -#define nh5tbdelete_field_c H5_FC_FUNC_(h5tbdelete_field_c, H5TBDELETE_FIELD_C) -#define nh5tbget_table_info_c H5_FC_FUNC_(h5tbget_table_info_c, H5TBGET_TABLE_INFO_C) -#define nh5tbget_field_info_c H5_FC_FUNC_(h5tbget_field_info_c, H5TBGET_FIELD_INFO_C) - /* * Functions from H5DSfc.c */ @@ -1287,7 +1251,7 @@ h5imis_palette_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbmake_table_c(size_t_f *namelen1, +h5tbmake_table_c(size_t_f *namelen1, _fcd name1, hid_t_f *loc_id, size_t_f *namelen, @@ -1305,7 +1269,7 @@ nh5tbmake_table_c(size_t_f *namelen1, HDF5_HL_F90CSTUBDLL int_f -nh5tbwrite_field_name_c(hid_t_f *loc_id, +h5tbwrite_field_name_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1317,7 +1281,7 @@ nh5tbwrite_field_name_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbwrite_field_name_int_c(hid_t_f *loc_id, +h5tbwrite_field_name_int_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1329,7 +1293,7 @@ nh5tbwrite_field_name_int_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbwrite_field_name_fl_c(hid_t_f *loc_id, +h5tbwrite_field_name_fl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1341,7 +1305,7 @@ nh5tbwrite_field_name_fl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbwrite_field_name_dl_c(hid_t_f *loc_id, +h5tbwrite_field_name_dl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1353,7 +1317,7 @@ nh5tbwrite_field_name_dl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbwrite_field_name_st_c(hid_t_f *loc_id, +h5tbwrite_field_name_st_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1365,7 +1329,7 @@ nh5tbwrite_field_name_st_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbread_field_name_c(hid_t_f *loc_id, +h5tbread_field_name_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1377,7 +1341,7 @@ nh5tbread_field_name_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbread_field_name_int_c(hid_t_f *loc_id, +h5tbread_field_name_int_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1389,7 +1353,7 @@ nh5tbread_field_name_int_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbread_field_name_fl_c(hid_t_f *loc_id, +h5tbread_field_name_fl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1401,7 +1365,7 @@ nh5tbread_field_name_fl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbread_field_name_dl_c(hid_t_f *loc_id, +h5tbread_field_name_dl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1413,7 +1377,7 @@ nh5tbread_field_name_dl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbread_field_name_st_c(hid_t_f *loc_id, +h5tbread_field_name_st_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1425,7 +1389,7 @@ nh5tbread_field_name_st_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbwrite_field_index_c(hid_t_f *loc_id, +h5tbwrite_field_index_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -1436,7 +1400,7 @@ nh5tbwrite_field_index_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbwrite_field_index_int_c(hid_t_f *loc_id, +h5tbwrite_field_index_int_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -1447,7 +1411,7 @@ nh5tbwrite_field_index_int_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbwrite_field_index_fl_c(hid_t_f *loc_id, +h5tbwrite_field_index_fl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -1458,7 +1422,7 @@ nh5tbwrite_field_index_fl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbwrite_field_index_dl_c(hid_t_f *loc_id, +h5tbwrite_field_index_dl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -1469,7 +1433,7 @@ nh5tbwrite_field_index_dl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbwrite_field_index_st_c(hid_t_f *loc_id, +h5tbwrite_field_index_st_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -1480,7 +1444,7 @@ nh5tbwrite_field_index_st_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbread_field_index_c(hid_t_f *loc_id, +h5tbread_field_index_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -1491,7 +1455,7 @@ nh5tbread_field_index_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbread_field_index_int_c(hid_t_f *loc_id, +h5tbread_field_index_int_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -1502,7 +1466,7 @@ nh5tbread_field_index_int_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbread_field_index_fl_c(hid_t_f *loc_id, +h5tbread_field_index_fl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -1513,7 +1477,7 @@ nh5tbread_field_index_fl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbread_field_index_dl_c(hid_t_f *loc_id, +h5tbread_field_index_dl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -1524,7 +1488,7 @@ nh5tbread_field_index_dl_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbread_field_index_st_c(hid_t_f *loc_id, +h5tbread_field_index_st_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -1535,7 +1499,7 @@ nh5tbread_field_index_st_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbinsert_field_c(hid_t_f *loc_id, +h5tbinsert_field_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1546,7 +1510,7 @@ nh5tbinsert_field_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbinsert_field_int_c(hid_t_f *loc_id, +h5tbinsert_field_int_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1556,7 +1520,7 @@ nh5tbinsert_field_int_c(hid_t_f *loc_id, void *buf); HDF5_HL_F90CSTUBDLL int_f -nh5tbinsert_field_fl_c(hid_t_f *loc_id, +h5tbinsert_field_fl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1566,7 +1530,7 @@ nh5tbinsert_field_fl_c(hid_t_f *loc_id, void *buf); HDF5_HL_F90CSTUBDLL int_f -nh5tbinsert_field_dl_c(hid_t_f *loc_id, +h5tbinsert_field_dl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1576,7 +1540,7 @@ nh5tbinsert_field_dl_c(hid_t_f *loc_id, void *buf); HDF5_HL_F90CSTUBDLL int_f -nh5tbinsert_field_st_c(hid_t_f *loc_id, +h5tbinsert_field_st_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1586,7 +1550,7 @@ nh5tbinsert_field_st_c(hid_t_f *loc_id, void *buf); HDF5_HL_F90CSTUBDLL int_f -nh5tbdelete_field_c(hid_t_f *loc_id, +h5tbdelete_field_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -1595,7 +1559,7 @@ nh5tbdelete_field_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbget_table_info_c(hid_t_f *loc_id, +h5tbget_table_info_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, hsize_t_f *nfields, @@ -1603,7 +1567,7 @@ nh5tbget_table_info_c(hid_t_f *loc_id, HDF5_HL_F90CSTUBDLL int_f -nh5tbget_field_info_c(hid_t_f *loc_id, +h5tbget_field_info_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, hsize_t_f *nfields, diff --git a/hl/fortran/src/H5TBfc.c b/hl/fortran/src/H5TBfc.c index bf058fd..7a8c40a 100644 --- a/hl/fortran/src/H5TBfc.c +++ b/hl/fortran/src/H5TBfc.c @@ -37,7 +37,7 @@ *------------------------------------------------------------------------- */ int_f -nh5tbmake_table_c(size_t_f *namelen1, +h5tbmake_table_c(size_t_f *namelen1, _fcd name1, hid_t_f *loc_id, size_t_f *namelen, @@ -133,7 +133,7 @@ done: HDfree(c_field_types); return ret_value; -} /* end nh5tbmake_table_c() */ +} /* end h5tbmake_table_c() */ /*------------------------------------------------------------------------- * Function: h5tbwrite_field_name_c @@ -151,7 +151,7 @@ done: *------------------------------------------------------------------------- */ int_f -nh5tbwrite_field_name_c(hid_t_f *loc_id, +h5tbwrite_field_name_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -191,7 +191,7 @@ done: } int_f -nh5tbwrite_field_name_int_c(hid_t_f *loc_id, +h5tbwrite_field_name_int_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -201,12 +201,12 @@ nh5tbwrite_field_name_int_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbwrite_field_name_c(loc_id, namelen, name, namelen1, field_name, + return h5tbwrite_field_name_c(loc_id, namelen, name, namelen1, field_name, start, nrecords, type_size, buf); } int_f -nh5tbwrite_field_name_fl_c(hid_t_f *loc_id, +h5tbwrite_field_name_fl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -216,12 +216,12 @@ nh5tbwrite_field_name_fl_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbwrite_field_name_c(loc_id, namelen, name, namelen1, field_name, + return h5tbwrite_field_name_c(loc_id, namelen, name, namelen1, field_name, start, nrecords, type_size, buf); } int_f -nh5tbwrite_field_name_dl_c(hid_t_f *loc_id, +h5tbwrite_field_name_dl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -231,12 +231,12 @@ nh5tbwrite_field_name_dl_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbwrite_field_name_c(loc_id, namelen, name, namelen1, field_name, + return h5tbwrite_field_name_c(loc_id, namelen, name, namelen1, field_name, start, nrecords, type_size, buf); } int_f -nh5tbwrite_field_name_st_c(hid_t_f *loc_id, +h5tbwrite_field_name_st_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -246,7 +246,7 @@ nh5tbwrite_field_name_st_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbwrite_field_name_c(loc_id, namelen, name, namelen1, field_name, + return h5tbwrite_field_name_c(loc_id, namelen, name, namelen1, field_name, start, nrecords, type_size, buf); } @@ -266,7 +266,7 @@ nh5tbwrite_field_name_st_c(hid_t_f *loc_id, *------------------------------------------------------------------------- */ int_f -nh5tbread_field_name_c(hid_t_f *loc_id, +h5tbread_field_name_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -306,7 +306,7 @@ done: } int_f -nh5tbread_field_name_int_c(hid_t_f *loc_id, +h5tbread_field_name_int_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -316,12 +316,12 @@ nh5tbread_field_name_int_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbread_field_name_c(loc_id, namelen, name, namelen1, field_name, + return h5tbread_field_name_c(loc_id, namelen, name, namelen1, field_name, start, nrecords, type_size, buf); } int_f -nh5tbread_field_name_fl_c(hid_t_f *loc_id, +h5tbread_field_name_fl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -331,12 +331,12 @@ nh5tbread_field_name_fl_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbread_field_name_c(loc_id, namelen, name, namelen1, field_name, + return h5tbread_field_name_c(loc_id, namelen, name, namelen1, field_name, start, nrecords, type_size, buf); } int_f -nh5tbread_field_name_dl_c(hid_t_f *loc_id, +h5tbread_field_name_dl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -346,12 +346,12 @@ nh5tbread_field_name_dl_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbread_field_name_c(loc_id, namelen, name, namelen1, field_name, + return h5tbread_field_name_c(loc_id, namelen, name, namelen1, field_name, start, nrecords, type_size, buf); } int_f -nh5tbread_field_name_st_c(hid_t_f *loc_id, +h5tbread_field_name_st_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -361,7 +361,7 @@ nh5tbread_field_name_st_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbread_field_name_c(loc_id, namelen, name, namelen1, field_name, + return h5tbread_field_name_c(loc_id, namelen, name, namelen1, field_name, start, nrecords, type_size, buf); } @@ -381,7 +381,7 @@ nh5tbread_field_name_st_c(hid_t_f *loc_id, *------------------------------------------------------------------------- */ int_f -nh5tbwrite_field_index_c(hid_t_f *loc_id, +h5tbwrite_field_index_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -417,7 +417,7 @@ done: } int_f -nh5tbwrite_field_index_int_c(hid_t_f *loc_id, +h5tbwrite_field_index_int_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -426,12 +426,12 @@ nh5tbwrite_field_index_int_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbwrite_field_index_c(loc_id, namelen, name, field_index, start, + return h5tbwrite_field_index_c(loc_id, namelen, name, field_index, start, nrecords, type_size, buf); } int_f -nh5tbwrite_field_index_fl_c(hid_t_f *loc_id, +h5tbwrite_field_index_fl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -440,12 +440,12 @@ nh5tbwrite_field_index_fl_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbwrite_field_index_c(loc_id, namelen, name, field_index, start, + return h5tbwrite_field_index_c(loc_id, namelen, name, field_index, start, nrecords, type_size, buf); } int_f -nh5tbwrite_field_index_dl_c(hid_t_f *loc_id, +h5tbwrite_field_index_dl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -454,12 +454,12 @@ nh5tbwrite_field_index_dl_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbwrite_field_index_c(loc_id, namelen, name, field_index, start, + return h5tbwrite_field_index_c(loc_id, namelen, name, field_index, start, nrecords, type_size, buf); } int_f -nh5tbwrite_field_index_st_c(hid_t_f *loc_id, +h5tbwrite_field_index_st_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -468,7 +468,7 @@ nh5tbwrite_field_index_st_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbwrite_field_index_c(loc_id, namelen, name, field_index, start, + return h5tbwrite_field_index_c(loc_id, namelen, name, field_index, start, nrecords, type_size, buf); } @@ -488,7 +488,7 @@ nh5tbwrite_field_index_st_c(hid_t_f *loc_id, *------------------------------------------------------------------------- */ int_f -nh5tbread_field_index_c(hid_t_f *loc_id, +h5tbread_field_index_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -523,7 +523,7 @@ done: } int_f -nh5tbread_field_index_int_c(hid_t_f *loc_id, +h5tbread_field_index_int_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -532,12 +532,12 @@ nh5tbread_field_index_int_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbread_field_index_c(loc_id, namelen, name, field_index, start, + return h5tbread_field_index_c(loc_id, namelen, name, field_index, start, nrecords, type_size, buf); } int_f -nh5tbread_field_index_fl_c(hid_t_f *loc_id, +h5tbread_field_index_fl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -546,12 +546,12 @@ nh5tbread_field_index_fl_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbread_field_index_c(loc_id, namelen, name, field_index, start, + return h5tbread_field_index_c(loc_id, namelen, name, field_index, start, nrecords, type_size, buf); } int_f -nh5tbread_field_index_dl_c(hid_t_f *loc_id, +h5tbread_field_index_dl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -560,12 +560,12 @@ nh5tbread_field_index_dl_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbread_field_index_c(loc_id, namelen, name, field_index, start, + return h5tbread_field_index_c(loc_id, namelen, name, field_index, start, nrecords, type_size, buf); } int_f -nh5tbread_field_index_st_c(hid_t_f *loc_id, +h5tbread_field_index_st_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, int_f *field_index, @@ -574,7 +574,7 @@ nh5tbread_field_index_st_c(hid_t_f *loc_id, size_t_f *type_size, void *buf) { - return nh5tbread_field_index_c(loc_id, namelen, name, field_index, start, + return h5tbread_field_index_c(loc_id, namelen, name, field_index, start, nrecords, type_size, buf); } @@ -594,7 +594,7 @@ nh5tbread_field_index_st_c(hid_t_f *loc_id, *------------------------------------------------------------------------- */ int_f -nh5tbinsert_field_c(hid_t_f *loc_id, +h5tbinsert_field_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -632,7 +632,7 @@ done: } int_f -nh5tbinsert_field_int_c(hid_t_f *loc_id, +h5tbinsert_field_int_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -641,12 +641,12 @@ nh5tbinsert_field_int_c(hid_t_f *loc_id, int_f *position, void *buf) { - return nh5tbinsert_field_c(loc_id, namelen, name, namelen1, field_name, + return h5tbinsert_field_c(loc_id, namelen, name, namelen1, field_name, field_type, position, buf); } int_f -nh5tbinsert_field_fl_c(hid_t_f *loc_id, +h5tbinsert_field_fl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -655,12 +655,12 @@ nh5tbinsert_field_fl_c(hid_t_f *loc_id, int_f *position, void *buf) { - return nh5tbinsert_field_c(loc_id, namelen, name, namelen1, field_name, + return h5tbinsert_field_c(loc_id, namelen, name, namelen1, field_name, field_type, position, buf); } int_f -nh5tbinsert_field_dl_c(hid_t_f *loc_id, +h5tbinsert_field_dl_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -669,12 +669,12 @@ nh5tbinsert_field_dl_c(hid_t_f *loc_id, int_f *position, void *buf) { - return nh5tbinsert_field_c(loc_id, namelen, name, namelen1, field_name, + return h5tbinsert_field_c(loc_id, namelen, name, namelen1, field_name, field_type, position, buf); } int_f -nh5tbinsert_field_st_c(hid_t_f *loc_id, +h5tbinsert_field_st_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -683,7 +683,7 @@ nh5tbinsert_field_st_c(hid_t_f *loc_id, int_f *position, void *buf) { - return nh5tbinsert_field_c(loc_id, namelen, name, namelen1, field_name, + return h5tbinsert_field_c(loc_id, namelen, name, namelen1, field_name, field_type, position, buf); } @@ -703,7 +703,7 @@ nh5tbinsert_field_st_c(hid_t_f *loc_id, *------------------------------------------------------------------------- */ int_f -nh5tbdelete_field_c(hid_t_f *loc_id, +h5tbdelete_field_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, size_t_f *namelen1, @@ -752,7 +752,7 @@ done: *------------------------------------------------------------------------- */ int_f -nh5tbget_table_info_c(hid_t_f *loc_id, +h5tbget_table_info_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, hsize_t_f *nfields, @@ -802,7 +802,7 @@ done: *------------------------------------------------------------------------- */ int_f -nh5tbget_field_info_c(hid_t_f *loc_id, +h5tbget_field_info_c(hid_t_f *loc_id, size_t_f *namelen, _fcd name, hsize_t_f *nfields, diff --git a/hl/fortran/src/H5TBff.F90 b/hl/fortran/src/H5TBff.F90 index 5846f49..c62c4a2 100644 --- a/hl/fortran/src/H5TBff.F90 +++ b/hl/fortran/src/H5TBff.F90 @@ -18,50 +18,49 @@ ! MODULE h5tb -USE h5fortran_types -USE hdf5 - - -INTERFACE h5tbwrite_field_name_f - MODULE PROCEDURE h5tbwrite_field_name_f_int - MODULE PROCEDURE h5tbwrite_field_name_f_float - MODULE PROCEDURE h5tbwrite_field_name_f_double - MODULE PROCEDURE h5tbwrite_field_name_f_string -END INTERFACE - -INTERFACE h5tbread_field_name_f - MODULE PROCEDURE h5tbread_field_name_f_int - MODULE PROCEDURE h5tbread_field_name_f_float - MODULE PROCEDURE h5tbread_field_name_f_double - MODULE PROCEDURE h5tbread_field_name_f_string -END INTERFACE - -INTERFACE h5tbwrite_field_index_f - MODULE PROCEDURE h5tbwrite_field_index_f_int - MODULE PROCEDURE h5tbwrite_field_index_f_float - MODULE PROCEDURE h5tbwrite_field_index_f_double - MODULE PROCEDURE h5tbwrite_field_index_f_string -END INTERFACE - -INTERFACE h5tbread_field_index_f - MODULE PROCEDURE h5tbread_field_index_f_int - MODULE PROCEDURE h5tbread_field_index_f_float - MODULE PROCEDURE h5tbread_field_index_f_double - MODULE PROCEDURE h5tbread_field_index_f_string -END INTERFACE - - -INTERFACE h5tbinsert_field_f - MODULE PROCEDURE h5tbinsert_field_f_int - MODULE PROCEDURE h5tbinsert_field_f_float - MODULE PROCEDURE h5tbinsert_field_f_double - MODULE PROCEDURE h5tbinsert_field_f_string -END INTERFACE + + USE ISO_C_BINDING + USE h5fortran_types + USE hdf5 + INTERFACE h5tbwrite_field_name_f + MODULE PROCEDURE h5tbwrite_field_name_f_int + MODULE PROCEDURE h5tbwrite_field_name_f_c_float + MODULE PROCEDURE h5tbwrite_field_name_f_c_double + MODULE PROCEDURE h5tbwrite_field_name_f_string + END INTERFACE + + INTERFACE h5tbread_field_name_f + MODULE PROCEDURE h5tbread_field_name_f_int + MODULE PROCEDURE h5tbread_field_name_f_c_float + MODULE PROCEDURE h5tbread_field_name_f_c_double + MODULE PROCEDURE h5tbread_field_name_f_string + END INTERFACE + + INTERFACE h5tbwrite_field_index_f + MODULE PROCEDURE h5tbwrite_field_index_f_int + MODULE PROCEDURE h5tbwrite_field_index_f_c_float + MODULE PROCEDURE h5tbwrite_field_index_f_c_double + MODULE PROCEDURE h5tbwrite_field_index_f_string + END INTERFACE + + INTERFACE h5tbread_field_index_f + MODULE PROCEDURE h5tbread_field_index_f_int + MODULE PROCEDURE h5tbread_field_index_f_c_float + MODULE PROCEDURE h5tbread_field_index_f_c_double + MODULE PROCEDURE h5tbread_field_index_f_string + END INTERFACE + + INTERFACE h5tbinsert_field_f + MODULE PROCEDURE h5tbinsert_field_f_int + MODULE PROCEDURE h5tbinsert_field_f_c_float + MODULE PROCEDURE h5tbinsert_field_f_c_double + MODULE PROCEDURE h5tbinsert_field_f_string + END INTERFACE + CONTAINS - !------------------------------------------------------------------------- ! Function: h5tbmake_table_f ! @@ -79,47 +78,94 @@ CONTAINS ! !------------------------------------------------------------------------- -SUBROUTINE h5tbmake_table_f(table_title,& - loc_id,& - dset_name,& - nfields,& - nrecords,& - type_size,& - field_names,& - field_offset,& - field_types,& - chunk_size,& - compress,& - errcode ) - - IMPLICIT NONE + SUBROUTINE h5tbmake_table_f(table_title,& + loc_id,& + dset_name,& + nfields,& + nrecords,& + type_size,& + field_names,& + field_offset,& + field_types,& + chunk_size,& + compress,& + errcode ) + + IMPLICIT NONE ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbmake_table_f !DEC$endif ! - CHARACTER(LEN=*), INTENT(in) :: table_title ! name of the dataset - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), INTENT(in) :: nfields ! fields - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - CHARACTER(LEN=*), DIMENSION(1:nfields), INTENT(in) :: field_names ! field names - INTEGER(size_t), DIMENSION(1:nfields), INTENT(in) :: field_offset ! field offset - INTEGER(hid_t), DIMENSION(1:nfields), INTENT(in) :: field_types ! field types - INTEGER(hsize_t), INTENT(in) :: chunk_size ! chunk size - INTEGER, INTENT(in) :: compress ! compress - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - INTEGER :: errcode ! error code - INTEGER(size_t), DIMENSION(1:nfields) :: char_len_field_names ! field name lengths - INTEGER(size_t) :: max_char_size_field_names ! character len of field names - INTEGER(hsize_t) :: i ! general purpose integer - - - INTERFACE - INTEGER FUNCTION h5tbmake_table_c(namelen1,& + CHARACTER(LEN=*), INTENT(in) :: table_title ! name of the dataset + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + INTEGER(hsize_t), INTENT(in) :: nfields ! fields + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + CHARACTER(LEN=*), DIMENSION(1:nfields), INTENT(in) :: field_names ! field names + INTEGER(size_t), DIMENSION(1:nfields), INTENT(in) :: field_offset ! field offset + INTEGER(hid_t), DIMENSION(1:nfields), INTENT(in) :: field_types ! field types + INTEGER(hsize_t), INTENT(in) :: chunk_size ! chunk size + INTEGER, INTENT(in) :: compress ! compress + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + INTEGER :: errcode ! error code + INTEGER(size_t), DIMENSION(1:nfields) :: char_len_field_names ! field name lengths + INTEGER(size_t) :: max_char_size_field_names ! character len of field names + INTEGER(hsize_t) :: i ! general purpose integer + + + INTERFACE + INTEGER FUNCTION h5tbmake_table_c(namelen1,& + table_title,& + loc_id,& + namelen,& + dset_name,& + nfields,& + nrecords,& + type_size,& + field_offset,& + field_types,& + chunk_size,& + compress,& + char_len_field_names,& + max_char_size_field_names,& + field_names) & + BIND(C,NAME='h5tbmake_table_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: table_title ! name of the dataset + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + INTEGER(hsize_t), INTENT(in) :: nfields ! fields + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + CHARACTER(KIND=C_CHAR), DIMENSION(nfields), INTENT(in) :: field_names ! field names + INTEGER(size_t), DIMENSION(nfields), INTENT(in) :: field_offset ! field offset + INTEGER(hid_t), DIMENSION(nfields), INTENT(in) :: field_types ! field types + INTEGER(hsize_t), INTENT(in) :: chunk_size ! chunk size + INTEGER, INTENT(in) :: compress ! compress + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + INTEGER(size_t), DIMENSION(nfields) :: char_len_field_names ! field name's lengths + INTEGER(size_t) :: max_char_size_field_names ! character len of field names + END FUNCTION h5tbmake_table_c + END INTERFACE + + namelen = LEN(dset_name) + namelen1 = LEN(table_title) + + ! Find the size of each character string in the array + DO i = 1, nfields + char_len_field_names(i) = LEN_TRIM(field_names(i)) + END DO + + max_char_size_field_names = LEN(field_names(1)) + + errcode = h5tbmake_table_c(namelen1,& table_title,& loc_id,& namelen,& @@ -131,62 +177,11 @@ SUBROUTINE h5tbmake_table_f(table_title,& field_types,& chunk_size,& compress,& - char_len_field_names,& - max_char_size_field_names,& + char_len_field_names, & + max_char_size_field_names, & field_names) - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBMAKE_TABLE_C'::h5tbmake_table_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: table_title - CHARACTER(LEN=*), INTENT(in) :: table_title ! name of the dataset - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), INTENT(in) :: nfields ! fields - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - CHARACTER(LEN=*), DIMENSION(nfields), INTENT(in) :: field_names ! field names - INTEGER(size_t), DIMENSION(nfields), INTENT(in) :: field_offset ! field offset - INTEGER(hid_t), DIMENSION(nfields), INTENT(in) :: field_types ! field types - INTEGER(hsize_t), INTENT(in) :: chunk_size ! chunk size - INTEGER, INTENT(in) :: compress ! compress - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - INTEGER(size_t), DIMENSION(nfields) :: char_len_field_names ! field name's lengths - INTEGER(size_t) :: max_char_size_field_names ! character len of field names - END FUNCTION h5tbmake_table_c - END INTERFACE - - namelen = LEN(dset_name) - namelen1 = LEN(table_title) - - ! Find the size of each character string in the array - DO i = 1, nfields - char_len_field_names(i) = LEN_TRIM(field_names(i)) - END DO - - max_char_size_field_names = LEN(field_names(1)) - - errcode = h5tbmake_table_c(namelen1,& - table_title,& - loc_id,& - namelen,& - dset_name,& - nfields,& - nrecords,& - type_size,& - field_offset,& - field_types,& - chunk_size,& - compress,& - char_len_field_names, & - max_char_size_field_names, & - field_names) - -END SUBROUTINE h5tbmake_table_f + END SUBROUTINE h5tbmake_table_f !------------------------------------------------------------------------- @@ -204,69 +199,63 @@ END SUBROUTINE h5tbmake_table_f ! !------------------------------------------------------------------------- -SUBROUTINE h5tbwrite_field_name_f_int(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - + SUBROUTINE h5tbwrite_field_name_f_int(loc_id,& + dset_name,& + field_name,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) + + IMPLICIT NONE ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbwrite_field_name_f_int !DEC$endif ! - - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - - INTERFACE - INTEGER FUNCTION h5tbwrite_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_NAME_INT_C'::h5tbwrite_field_name_int_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: field_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - END FUNCTION h5tbwrite_field_name_int_c - END INTERFACE - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbwrite_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbwrite_field_name_f_int - + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + + INTERFACE + INTEGER FUNCTION h5tbwrite_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbwrite_field_name_int_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + END FUNCTION h5tbwrite_field_name_int_c + END INTERFACE + + namelen = LEN(dset_name) + namelen1 = LEN(field_name) + + errcode = h5tbwrite_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbwrite_field_name_f_int + !------------------------------------------------------------------------- -! Function: h5tbwrite_field_name_f_float +! Function: h5tbwrite_field_name_f_c_float ! ! Purpose: Writes one field ! @@ -280,71 +269,63 @@ END SUBROUTINE h5tbwrite_field_name_f_int ! !------------------------------------------------------------------------- -SUBROUTINE h5tbwrite_field_name_f_float(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - + SUBROUTINE h5tbwrite_field_name_f_c_float(loc_id,& + dset_name,& + field_name,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) + + IMPLICIT NONE ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_HL_DLL) -!DEC$attributes dllexport :: h5tbwrite_field_name_f_float +!DEC$attributes dllexport :: h5tbwrite_field_name_f_c_float !DEC$endif ! - - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - - INTERFACE - INTEGER FUNCTION h5tbwrite_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_NAME_FL_C'::h5tbwrite_field_name_fl_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: field_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - END FUNCTION h5tbwrite_field_name_fl_c - END INTERFACE - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbwrite_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbwrite_field_name_f_float - - + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + + INTERFACE + INTEGER FUNCTION h5tbwrite_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbwrite_field_name_fl_c') + IMPORT :: C_CHAR, C_FLOAT + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + END FUNCTION h5tbwrite_field_name_fl_c + END INTERFACE + + namelen = LEN(dset_name) + namelen1 = LEN(field_name) + + errcode = h5tbwrite_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbwrite_field_name_f_c_float !------------------------------------------------------------------------- -! Function: h5tbwrite_field_name_f_double +! Function: h5tbwrite_field_name_f_c_double ! ! Purpose: Writes one field ! @@ -358,66 +339,61 @@ END SUBROUTINE h5tbwrite_field_name_f_float ! !------------------------------------------------------------------------- -SUBROUTINE h5tbwrite_field_name_f_double(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - + SUBROUTINE h5tbwrite_field_name_f_c_double(loc_id,& + dset_name,& + field_name,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) + + IMPLICIT NONE ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_HL_DLL) -!DEC$attributes dllexport :: h5tbwrite_field_name_f_double +!DEC$attributes dllexport :: h5tbwrite_field_name_f_c_double !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - - INTERFACE - INTEGER FUNCTION h5tbwrite_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_NAME_DL_C'::h5tbwrite_field_name_dl_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: field_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - END FUNCTION h5tbwrite_field_name_dl_c - END INTERFACE - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbwrite_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbwrite_field_name_f_double + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + + INTERFACE + INTEGER FUNCTION h5tbwrite_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbwrite_field_name_dl_c') + IMPORT :: C_CHAR, C_DOUBLE + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + END FUNCTION h5tbwrite_field_name_dl_c + END INTERFACE + + namelen = LEN(dset_name) + namelen1 = LEN(field_name) + + errcode = h5tbwrite_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbwrite_field_name_f_c_double !------------------------------------------------------------------------- ! Function: h5tbwrite_field_name_f_string @@ -434,16 +410,16 @@ END SUBROUTINE h5tbwrite_field_name_f_double ! !------------------------------------------------------------------------- -SUBROUTINE h5tbwrite_field_name_f_string(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) + SUBROUTINE h5tbwrite_field_name_f_string(loc_id,& + dset_name,& + field_name,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) - IMPLICIT NONE + IMPLICIT NONE ! !This definition is needed for Windows DLLs @@ -452,48 +428,44 @@ SUBROUTINE h5tbwrite_field_name_f_string(loc_id,& !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - - INTERFACE - INTEGER FUNCTION h5tbwrite_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_NAME_ST_C'::h5tbwrite_field_name_st_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: field_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - END FUNCTION h5tbwrite_field_name_st_c - END INTERFACE - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbwrite_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbwrite_field_name_f_string + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + + INTERFACE + INTEGER FUNCTION h5tbwrite_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbwrite_field_name_st_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + CHARACTER(KIND=C_CHAR), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + END FUNCTION h5tbwrite_field_name_st_c + END INTERFACE + + namelen = LEN(dset_name) + namelen1 = LEN(field_name) + + errcode = h5tbwrite_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbwrite_field_name_f_string !------------------------------------------------------------------------- @@ -511,16 +483,16 @@ END SUBROUTINE h5tbwrite_field_name_f_string ! !------------------------------------------------------------------------- -SUBROUTINE h5tbread_field_name_f_int(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) + SUBROUTINE h5tbread_field_name_f_int(loc_id,& + dset_name,& + field_name,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) - IMPLICIT NONE + IMPLICIT NONE ! !This definition is needed for Windows DLLs @@ -529,51 +501,47 @@ SUBROUTINE h5tbread_field_name_f_int(loc_id,& !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - - INTERFACE - INTEGER FUNCTION h5tbread_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_NAME_INT_C'::h5tbread_field_name_int_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: field_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - END FUNCTION h5tbread_field_name_int_c - END INTERFACE - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbread_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbread_field_name_f_int + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + + INTERFACE + INTEGER FUNCTION h5tbread_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name, & + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbread_field_name_int_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + END FUNCTION h5tbread_field_name_int_c + END INTERFACE + + namelen = LEN(dset_name) + namelen1 = LEN(field_name) + + errcode = h5tbread_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbread_field_name_f_int !------------------------------------------------------------------------- -! Function: h5tbread_field_name_f_float +! Function: h5tbread_field_name_f_c_float ! ! Purpose: Reads one field ! @@ -587,69 +555,65 @@ END SUBROUTINE h5tbread_field_name_f_int ! !------------------------------------------------------------------------- -SUBROUTINE h5tbread_field_name_f_float(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) + SUBROUTINE h5tbread_field_name_f_c_float(loc_id,& + dset_name,& + field_name,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) - IMPLICIT NONE + IMPLICIT NONE ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_HL_DLL) -!DEC$attributes dllexport :: h5tbread_field_name_f_float +!DEC$attributes dllexport :: h5tbread_field_name_f_c_float !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - - INTERFACE - INTEGER FUNCTION h5tbread_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_NAME_FL_C'::h5tbread_field_name_fl_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: field_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - END FUNCTION h5tbread_field_name_fl_c - END INTERFACE - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbread_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbread_field_name_f_float + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + + INTERFACE + INTEGER FUNCTION h5tbread_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbread_field_name_fl_c') + IMPORT :: C_CHAR, C_FLOAT + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + END FUNCTION h5tbread_field_name_fl_c + END INTERFACE + + namelen = LEN(dset_name) + namelen1 = LEN(field_name) + + errcode = h5tbread_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbread_field_name_f_c_float !------------------------------------------------------------------------- -! Function: h5tbread_field_name_f_double +! Function: h5tbread_field_name_f_c_double ! ! Purpose: Reads one field ! @@ -663,66 +627,62 @@ END SUBROUTINE h5tbread_field_name_f_float ! !------------------------------------------------------------------------- -SUBROUTINE h5tbread_field_name_f_double(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) + SUBROUTINE h5tbread_field_name_f_c_double(loc_id,& + dset_name,& + field_name,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) - IMPLICIT NONE + IMPLICIT NONE ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_HL_DLL) -!DEC$attributes dllexport :: h5tbread_field_name_f_double +!DEC$attributes dllexport :: h5tbread_field_name_f_c_double !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - - INTERFACE - INTEGER FUNCTION h5tbread_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_NAME_DL_C'::h5tbread_field_name_dl_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: field_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - END FUNCTION h5tbread_field_name_dl_c - END INTERFACE - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbread_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbread_field_name_f_double + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + + INTERFACE + INTEGER FUNCTION h5tbread_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbread_field_name_dl_c') + IMPORT :: C_CHAR, C_DOUBLE + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + END FUNCTION h5tbread_field_name_dl_c + END INTERFACE + + namelen = LEN(dset_name) + namelen1 = LEN(field_name) + + errcode = h5tbread_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbread_field_name_f_c_double !------------------------------------------------------------------------- ! Function: h5tbread_field_name_f_string @@ -739,16 +699,16 @@ END SUBROUTINE h5tbread_field_name_f_double ! !------------------------------------------------------------------------- -SUBROUTINE h5tbread_field_name_f_string(loc_id,& - dset_name,& - field_name,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) + SUBROUTINE h5tbread_field_name_f_string(loc_id,& + dset_name,& + field_name,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) - IMPLICIT NONE + IMPLICIT NONE ! !This definition is needed for Windows DLLs @@ -757,48 +717,44 @@ SUBROUTINE h5tbread_field_name_f_string(loc_id,& !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - - INTERFACE - INTEGER FUNCTION h5tbread_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_NAME_ST_C'::h5tbread_field_name_st_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: field_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - END FUNCTION h5tbread_field_name_st_c - END INTERFACE - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbread_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbread_field_name_f_string + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + + INTERFACE + INTEGER FUNCTION h5tbread_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbread_field_name_st_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: field_name ! name of the field + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + END FUNCTION h5tbread_field_name_st_c + END INTERFACE + + namelen = LEN(dset_name) + namelen1 = LEN(field_name) + + errcode = h5tbread_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbread_field_name_f_string !------------------------------------------------------------------------- @@ -815,17 +771,17 @@ END SUBROUTINE h5tbread_field_name_f_string ! Modifications: ! !------------------------------------------------------------------------- - -SUBROUTINE h5tbwrite_field_index_f_int(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE + + SUBROUTINE h5tbwrite_field_index_f_int(loc_id,& + dset_name,& + field_index,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) + + IMPLICIT NONE ! !This definition is needed for Windows DLLs @@ -834,47 +790,44 @@ SUBROUTINE h5tbwrite_field_index_f_int(loc_id,& !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - - INTERFACE - INTEGER FUNCTION h5tbwrite_field_index_int_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_INDEX_INT_C'::h5tbwrite_field_index_int_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - END FUNCTION h5tbwrite_field_index_int_c - END INTERFACE - - namelen = LEN(dset_name) - - errcode = h5tbwrite_field_index_int_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbwrite_field_index_f_int + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + + INTERFACE + INTEGER FUNCTION h5tbwrite_field_index_int_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbwrite_field_index_int_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + END FUNCTION h5tbwrite_field_index_int_c + END INTERFACE + + namelen = LEN(dset_name) + + errcode = h5tbwrite_field_index_int_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbwrite_field_index_f_int !------------------------------------------------------------------------- -! Function: h5tbwrite_field_index_f_float +! Function: h5tbwrite_field_index_f_c_float ! ! Purpose: Writes one field ! @@ -888,67 +841,64 @@ END SUBROUTINE h5tbwrite_field_index_f_int ! !------------------------------------------------------------------------- -SUBROUTINE h5tbwrite_field_index_f_float(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE + SUBROUTINE h5tbwrite_field_index_f_c_float(loc_id,& + dset_name,& + field_index,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) + + IMPLICIT NONE ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_HL_DLL) -!DEC$attributes dllexport :: h5tbwrite_field_index_f_float +!DEC$attributes dllexport :: h5tbwrite_field_index_f_c_float !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - - INTERFACE - INTEGER FUNCTION h5tbwrite_field_index_fl_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_INDEX_FL_C'::h5tbwrite_field_index_fl_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - END FUNCTION h5tbwrite_field_index_fl_c - END INTERFACE - - namelen = LEN(dset_name) - - errcode = h5tbwrite_field_index_fl_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbwrite_field_index_f_float + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + + INTERFACE + INTEGER FUNCTION h5tbwrite_field_index_fl_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbwrite_field_index_fl_c') + IMPORT :: C_CHAR, C_FLOAT + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + END FUNCTION h5tbwrite_field_index_fl_c + END INTERFACE + + namelen = LEN(dset_name) + + errcode = h5tbwrite_field_index_fl_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbwrite_field_index_f_c_float !------------------------------------------------------------------------- -! Function: h5tbwrite_field_index_f_double +! Function: h5tbwrite_field_index_f_c_double ! ! Purpose: Writes one field ! @@ -962,62 +912,59 @@ END SUBROUTINE h5tbwrite_field_index_f_float ! !------------------------------------------------------------------------- -SUBROUTINE h5tbwrite_field_index_f_double(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE - + SUBROUTINE h5tbwrite_field_index_f_c_double(loc_id,& + dset_name,& + field_index,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) + + IMPLICIT NONE + ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_HL_DLL) -!DEC$attributes dllexport :: h5tbwrite_field_index_f_double +!DEC$attributes dllexport :: h5tbwrite_field_index_f_c_double !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - - INTERFACE - INTEGER FUNCTION h5tbwrite_field_index_dl_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_INDEX_DL_C'::h5tbwrite_field_index_dl_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - END FUNCTION h5tbwrite_field_index_dl_c - END INTERFACE - - namelen = LEN(dset_name) - - errcode = h5tbwrite_field_index_dl_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbwrite_field_index_f_double + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + + INTERFACE + INTEGER FUNCTION h5tbwrite_field_index_dl_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbwrite_field_index_dl_c') + IMPORT :: C_CHAR, C_DOUBLE + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + END FUNCTION h5tbwrite_field_index_dl_c + END INTERFACE + + namelen = LEN(dset_name) + + errcode = h5tbwrite_field_index_dl_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbwrite_field_index_f_c_double !------------------------------------------------------------------------- ! Function: h5tbwrite_field_index_f_string @@ -1034,16 +981,16 @@ END SUBROUTINE h5tbwrite_field_index_f_double ! !------------------------------------------------------------------------- -SUBROUTINE h5tbwrite_field_index_f_string(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE + SUBROUTINE h5tbwrite_field_index_f_string(loc_id,& + dset_name,& + field_index,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) + + IMPLICIT NONE ! !This definition is needed for Windows DLLs @@ -1052,44 +999,41 @@ SUBROUTINE h5tbwrite_field_index_f_string(loc_id,& !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - - INTERFACE - INTEGER FUNCTION h5tbwrite_field_index_st_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_INDEX_ST_C'::h5tbwrite_field_index_st_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - END FUNCTION h5tbwrite_field_index_st_c - END INTERFACE - - namelen = LEN(dset_name) - - errcode = h5tbwrite_field_index_st_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbwrite_field_index_f_string + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + + INTERFACE + INTEGER FUNCTION h5tbwrite_field_index_st_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbwrite_field_index_st_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + END FUNCTION h5tbwrite_field_index_st_c + END INTERFACE + + namelen = LEN(dset_name) + + errcode = h5tbwrite_field_index_st_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbwrite_field_index_f_string !------------------------------------------------------------------------- @@ -1107,16 +1051,16 @@ END SUBROUTINE h5tbwrite_field_index_f_string ! !------------------------------------------------------------------------- -SUBROUTINE h5tbread_field_index_f_int(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) - - IMPLICIT NONE + SUBROUTINE h5tbread_field_index_f_int(loc_id,& + dset_name,& + field_index,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) + + IMPLICIT NONE ! !This definition is needed for Windows DLLs @@ -1124,48 +1068,44 @@ SUBROUTINE h5tbread_field_index_f_int(loc_id,& !DEC$attributes dllexport ::h5tbread_field_index_f_int !DEC$endif ! - - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - - INTERFACE - INTEGER FUNCTION h5tbread_field_index_int_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_INDEX_INT_C'::h5tbread_field_index_int_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - END FUNCTION h5tbread_field_index_int_c - END INTERFACE - - namelen = LEN(dset_name) - - errcode = h5tbread_field_index_int_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbread_field_index_f_int + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + + INTERFACE + INTEGER FUNCTION h5tbread_field_index_int_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbread_field_index_int_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + END FUNCTION h5tbread_field_index_int_c + END INTERFACE + + namelen = LEN(dset_name) + + errcode = h5tbread_field_index_int_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbread_field_index_f_int !------------------------------------------------------------------------- -! Function: h5tbread_field_index_f_float +! Function: h5tbread_field_index_f_c_float ! ! Purpose: Reads one field ! @@ -1179,65 +1119,62 @@ END SUBROUTINE h5tbread_field_index_f_int ! !------------------------------------------------------------------------- -SUBROUTINE h5tbread_field_index_f_float(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) + SUBROUTINE h5tbread_field_index_f_c_float(loc_id,& + dset_name,& + field_index,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) - IMPLICIT NONE + IMPLICIT NONE ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_HL_DLL) -!DEC$attributes dllexport :: h5tbread_field_index_f_float +!DEC$attributes dllexport :: h5tbread_field_index_f_c_float !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - - INTERFACE - INTEGER FUNCTION h5tbread_field_index_fl_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_INDEX_FL_C'::h5tbread_field_index_fl_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - END FUNCTION h5tbread_field_index_fl_c - END INTERFACE - - namelen = LEN(dset_name) - - errcode = h5tbread_field_index_fl_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbread_field_index_f_float + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + + INTERFACE + INTEGER FUNCTION h5tbread_field_index_fl_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbread_field_index_fl_c') + IMPORT :: C_CHAR, C_FLOAT + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + END FUNCTION h5tbread_field_index_fl_c + END INTERFACE + + namelen = LEN(dset_name) + + errcode = h5tbread_field_index_fl_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbread_field_index_f_c_float !------------------------------------------------------------------------- -! Function: h5tbread_field_index_f_double +! Function: h5tbread_field_index_f_c_double ! ! Purpose: Reads one field ! @@ -1251,62 +1188,59 @@ END SUBROUTINE h5tbread_field_index_f_float ! !------------------------------------------------------------------------- -SUBROUTINE h5tbread_field_index_f_double(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) + SUBROUTINE h5tbread_field_index_f_c_double(loc_id,& + dset_name,& + field_index,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) - IMPLICIT NONE + IMPLICIT NONE ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_HL_DLL) -!DEC$attributes dllexport :: h5tbread_field_index_f_double +!DEC$attributes dllexport :: h5tbread_field_index_f_c_double !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - - INTERFACE - INTEGER FUNCTION h5tbread_field_index_dl_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_INDEX_DL_C'::h5tbread_field_index_dl_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - END FUNCTION h5tbread_field_index_dl_c - END INTERFACE - - namelen = LEN(dset_name) - - errcode = h5tbread_field_index_dl_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbread_field_index_f_double + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + + INTERFACE + INTEGER FUNCTION h5tbread_field_index_dl_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbread_field_index_dl_c') + IMPORT :: C_CHAR, C_DOUBLE + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + END FUNCTION h5tbread_field_index_dl_c + END INTERFACE + + namelen = LEN(dset_name) + + errcode = h5tbread_field_index_dl_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbread_field_index_f_c_double !------------------------------------------------------------------------- ! Function: h5tbread_field_index_f_string @@ -1323,16 +1257,16 @@ END SUBROUTINE h5tbread_field_index_f_double ! !------------------------------------------------------------------------- -SUBROUTINE h5tbread_field_index_f_string(loc_id,& - dset_name,& - field_index,& - start,& - nrecords,& - type_size,& - buf,& - errcode ) + SUBROUTINE h5tbread_field_index_f_string(loc_id,& + dset_name,& + field_index,& + start,& + nrecords,& + type_size,& + buf,& + errcode ) - IMPLICIT NONE + IMPLICIT NONE ! !This definition is needed for Windows DLLs @@ -1341,45 +1275,41 @@ SUBROUTINE h5tbread_field_index_f_string(loc_id,& !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - - INTERFACE - INTEGER FUNCTION h5tbread_field_index_st_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_INDEX_ST_C'::h5tbread_field_index_st_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER, INTENT(in) :: field_index ! index - INTEGER(hsize_t), INTENT(in) :: start ! start record - INTEGER(hsize_t), INTENT(in) :: nrecords ! records - INTEGER(size_t), INTENT(in) :: type_size ! type size - CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - END FUNCTION h5tbread_field_index_st_c - END INTERFACE - - namelen = LEN(dset_name) - - errcode = h5tbread_field_index_st_c(loc_id,namelen,dset_name,field_index,& - start,nrecords,type_size,buf) - -END SUBROUTINE h5tbread_field_index_f_string - + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + + INTERFACE + INTEGER FUNCTION h5tbread_field_index_st_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) & + BIND(C,NAME='h5tbread_field_index_st_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + INTEGER, INTENT(in) :: field_index ! index + INTEGER(hsize_t), INTENT(in) :: start ! start record + INTEGER(hsize_t), INTENT(in) :: nrecords ! records + INTEGER(size_t), INTENT(in) :: type_size ! type size + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: buf ! data buffer + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + END FUNCTION h5tbread_field_index_st_c + END INTERFACE + + namelen = LEN(dset_name) + + errcode = h5tbread_field_index_st_c(loc_id,namelen,dset_name,field_index,& + start,nrecords,type_size,buf) + + END SUBROUTINE h5tbread_field_index_f_string !------------------------------------------------------------------------- ! Function: h5tbinsert_field_f_int @@ -1396,14 +1326,14 @@ END SUBROUTINE h5tbread_field_index_f_string ! !------------------------------------------------------------------------- -SUBROUTINE h5tbinsert_field_f_int(loc_id,& - dset_name,& - field_name,& - field_type,& - field_index,& - buf,& - errcode ) - IMPLICIT NONE + SUBROUTINE h5tbinsert_field_f_int(loc_id,& + dset_name,& + field_name,& + field_type,& + field_index,& + buf,& + errcode ) + IMPLICIT NONE ! !This definition is needed for Windows DLLs @@ -1412,51 +1342,44 @@ SUBROUTINE h5tbinsert_field_f_int(loc_id,& !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hid_t), INTENT(in) :: field_type ! field type - INTEGER, INTENT(in) :: field_index ! field_index - INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - INTEGER :: errcode ! error code - - - INTERFACE - INTEGER FUNCTION h5tbinsert_field_int_c(loc_id,namelen,dset_name,namelen1,field_name,& - field_type,field_index,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBINSERT_FIELD_INT_C'::h5tbinsert_field_int_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: field_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hid_t), INTENT(in) :: field_type ! field type - INTEGER, INTENT(in) :: field_index ! field_index - INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length length - END FUNCTION h5tbinsert_field_int_c - END INTERFACE - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbinsert_field_int_c(loc_id,namelen,dset_name,namelen1,field_name,& - field_type,field_index,buf) - -END SUBROUTINE h5tbinsert_field_f_int - - - + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field + INTEGER(hid_t), INTENT(in) :: field_type ! field type + INTEGER, INTENT(in) :: field_index ! field_index + INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + INTEGER :: errcode ! error code + + INTERFACE + INTEGER FUNCTION h5tbinsert_field_int_c(loc_id,namelen,dset_name,namelen1,field_name,& + field_type,field_index,buf) & + BIND(C,NAME='h5tbinsert_field_int_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: field_name ! name of the field + INTEGER(hid_t), INTENT(in) :: field_type ! field type + INTEGER, INTENT(in) :: field_index ! field_index + INTEGER, INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length length + END FUNCTION h5tbinsert_field_int_c + END INTERFACE + + namelen = LEN(dset_name) + namelen1 = LEN(field_name) + + errcode = h5tbinsert_field_int_c(loc_id,namelen,dset_name,namelen1,field_name,& + field_type,field_index,buf) + + END SUBROUTINE h5tbinsert_field_f_int + !------------------------------------------------------------------------- -! Function: h5tbinsert_field_f_float +! Function: h5tbinsert_field_f_c_float ! ! Purpose: Inserts one field ! @@ -1470,67 +1393,62 @@ END SUBROUTINE h5tbinsert_field_f_int ! !------------------------------------------------------------------------- -SUBROUTINE h5tbinsert_field_f_float(loc_id,& - dset_name,& - field_name,& - field_type,& - field_index,& - buf,& - errcode ) - IMPLICIT NONE + SUBROUTINE h5tbinsert_field_f_c_float(loc_id,& + dset_name,& + field_name,& + field_type,& + field_index,& + buf,& + errcode ) + IMPLICIT NONE ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_HL_DLL) -!DEC$attributes dllexport :: h5tbinsert_field_f_float +!DEC$attributes dllexport :: h5tbinsert_field_f_c_float !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hid_t), INTENT(in) :: field_type ! field type - INTEGER, INTENT(in) :: field_index ! field_index - REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - INTEGER :: errcode ! error code - - - INTERFACE - INTEGER FUNCTION h5tbinsert_field_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& - field_type,field_index,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBINSERT_FIELD_FL_C'::h5tbinsert_field_fl_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: field_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hid_t), INTENT(in) :: field_type ! field type - INTEGER, INTENT(in) :: field_index ! field_index - REAL, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length length - END FUNCTION h5tbinsert_field_fl_c - END INTERFACE - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbinsert_field_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& - field_type,field_index,buf) - -END SUBROUTINE h5tbinsert_field_f_float + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field + INTEGER(hid_t), INTENT(in) :: field_type ! field type + INTEGER, INTENT(in) :: field_index ! field_index + REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + INTEGER :: errcode ! error code + + INTERFACE + INTEGER FUNCTION h5tbinsert_field_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& + field_type,field_index,buf) & + BIND(C,NAME='h5tbinsert_field_fl_c') + IMPORT :: C_CHAR, C_FLOAT + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: field_name ! name of the field + INTEGER(hid_t), INTENT(in) :: field_type ! field type + INTEGER, INTENT(in) :: field_index ! field_index + REAL(KIND=C_FLOAT), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length length + END FUNCTION h5tbinsert_field_fl_c + END INTERFACE + + namelen = LEN(dset_name) + namelen1 = LEN(field_name) + + errcode = h5tbinsert_field_fl_c(loc_id,namelen,dset_name,namelen1,field_name,& + field_type,field_index,buf) + + END SUBROUTINE h5tbinsert_field_f_c_float !------------------------------------------------------------------------- -! Function: h5tbinsert_field_f_double +! Function: h5tbinsert_field_f_c_double ! ! Purpose: Inserts one field ! @@ -1544,65 +1462,58 @@ END SUBROUTINE h5tbinsert_field_f_float ! !------------------------------------------------------------------------- -SUBROUTINE h5tbinsert_field_f_double(loc_id,& - dset_name,& - field_name,& - field_type,& - field_index,& - buf,& - errcode ) - IMPLICIT NONE + SUBROUTINE h5tbinsert_field_f_c_double(loc_id,& + dset_name,& + field_name,& + field_type,& + field_index,& + buf,& + errcode ) + IMPLICIT NONE ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_HL_DLL) -!DEC$attributes dllexport :: h5tbinsert_field_f_double +!DEC$attributes dllexport :: h5tbinsert_field_f_c_double !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hid_t), INTENT(in) :: field_type ! field type - INTEGER, INTENT(in) :: field_index ! field_index - DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - INTEGER :: errcode ! error code - - - INTERFACE - INTEGER FUNCTION h5tbinsert_field_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& - field_type,field_index,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBINSERT_FIELD_DL_C'::h5tbinsert_field_dl_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: field_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hid_t), INTENT(in) :: field_type ! field type - INTEGER, INTENT(in) :: field_index ! field_index - DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length length - END FUNCTION h5tbinsert_field_dl_c - END INTERFACE - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbinsert_field_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& - field_type,field_index,buf) - -END SUBROUTINE h5tbinsert_field_f_double - - - + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field + INTEGER(hid_t), INTENT(in) :: field_type ! field type + INTEGER, INTENT(in) :: field_index ! field_index + REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + INTEGER :: errcode ! error code + + + INTERFACE + INTEGER FUNCTION h5tbinsert_field_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& + field_type,field_index,buf) & + BIND(C,NAME='h5tbinsert_field_dl_c') + IMPORT :: C_CHAR, C_DOUBLE + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: field_name ! name of the field + INTEGER(hid_t), INTENT(in) :: field_type ! field type + INTEGER, INTENT(in) :: field_index ! field_index + REAL(KIND=C_DOUBLE), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length length + END FUNCTION h5tbinsert_field_dl_c + END INTERFACE + + namelen = LEN(dset_name) + namelen1 = LEN(field_name) + + errcode = h5tbinsert_field_dl_c(loc_id,namelen,dset_name,namelen1,field_name,& + field_type,field_index,buf) + + END SUBROUTINE h5tbinsert_field_f_c_double !------------------------------------------------------------------------- ! Function: h5tbinsert_field_f_string @@ -1619,14 +1530,14 @@ END SUBROUTINE h5tbinsert_field_f_double ! !------------------------------------------------------------------------- -SUBROUTINE h5tbinsert_field_f_string(loc_id,& - dset_name,& - field_name,& - field_type,& - field_index,& - buf,& - errcode ) - IMPLICIT NONE + SUBROUTINE h5tbinsert_field_f_string(loc_id,& + dset_name,& + field_name,& + field_type,& + field_index,& + buf,& + errcode ) + IMPLICIT NONE ! !This definition is needed for Windows DLLs @@ -1635,49 +1546,41 @@ SUBROUTINE h5tbinsert_field_f_string(loc_id,& !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hid_t), INTENT(in) :: field_type ! field type - INTEGER, INTENT(in) :: field_index ! field_index - CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - INTEGER :: errcode ! error code - - - INTERFACE - INTEGER FUNCTION h5tbinsert_field_st_c(loc_id,namelen,dset_name,namelen1,field_name,& - field_type,field_index,buf) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBINSERT_FIELD_ST_C'::h5tbinsert_field_st_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: field_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(hid_t), INTENT(in) :: field_type ! field type - INTEGER, INTENT(in) :: field_index ! field_index - CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length length - END FUNCTION h5tbinsert_field_st_c - END INTERFACE - - namelen = LEN(dset_name) - namelen1 = LEN(field_name) - - errcode = h5tbinsert_field_st_c(loc_id,namelen,dset_name,namelen1,field_name,& - field_type,field_index,buf) - -END SUBROUTINE h5tbinsert_field_f_string - - - + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field + INTEGER(hid_t), INTENT(in) :: field_type ! field type + INTEGER, INTENT(in) :: field_index ! field_index + CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf ! data buffer + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + INTEGER :: errcode ! error code + + INTERFACE + INTEGER FUNCTION h5tbinsert_field_st_c(loc_id,namelen,dset_name,namelen1,field_name,& + field_type,field_index,buf) & + BIND(C,NAME='h5tbinsert_field_st_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: field_name ! name of the field + INTEGER(hid_t), INTENT(in) :: field_type ! field type + INTEGER, INTENT(in) :: field_index ! field_index + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: buf ! data buffer + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length length + END FUNCTION h5tbinsert_field_st_c + END INTERFACE + + namelen = LEN(dset_name) + namelen1 = LEN(field_name) + + errcode = h5tbinsert_field_st_c(loc_id,namelen,dset_name,namelen1,field_name,& + field_type,field_index,buf) + + END SUBROUTINE h5tbinsert_field_f_string !------------------------------------------------------------------------- ! Function: h5tbdelete_field_f @@ -1694,11 +1597,11 @@ END SUBROUTINE h5tbinsert_field_f_string ! !------------------------------------------------------------------------- -SUBROUTINE h5tbdelete_field_f(loc_id,& - dset_name,& - field_name,& - errcode ) - IMPLICIT NONE + SUBROUTINE h5tbdelete_field_f(loc_id,& + dset_name,& + field_name,& + errcode ) + IMPLICIT NONE ! !This definition is needed for Windows DLLs @@ -1707,38 +1610,34 @@ SUBROUTINE h5tbdelete_field_f(loc_id,& !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length - INTEGER :: errcode ! error code + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + CHARACTER(LEN=*), INTENT(in) :: field_name ! name of the field + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length + INTEGER :: errcode ! error code - INTERFACE - INTEGER FUNCTION h5tbdelete_field_c(loc_id,namelen,dset_name,namelen1,field_name) + INTERFACE + INTEGER FUNCTION h5tbdelete_field_c(loc_id,namelen,dset_name,namelen1,field_name) & + BIND(C,NAME='h5tbdelete_field_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: dset_name ! name of the dataset + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: field_name ! name of the field + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: namelen1 ! name length length + END FUNCTION h5tbdelete_field_c + END INTERFACE - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBDELETE_FIELD_C'::h5tbdelete_field_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - !DEC$ATTRIBUTES reference :: field_name - INTEGER(HID_T), INTENT(IN) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(IN) :: dset_name ! name of the dataset - CHARACTER(LEN=*), INTENT(IN) :: field_name ! name of the field - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: namelen1 ! name length length - END FUNCTION h5tbdelete_field_c - END INTERFACE + namelen = LEN(dset_name) + namelen1 = LEN(field_name) - namelen = LEN(dset_name) - namelen1 = LEN(field_name) + errcode = h5tbdelete_field_c(loc_id,namelen,dset_name,namelen1,field_name) - errcode = h5tbdelete_field_c(loc_id,namelen,dset_name,namelen1,field_name) - -END SUBROUTINE h5tbdelete_field_f + END SUBROUTINE h5tbdelete_field_f @@ -1759,13 +1658,13 @@ END SUBROUTINE h5tbdelete_field_f ! !------------------------------------------------------------------------- -SUBROUTINE h5tbget_table_info_f(loc_id,& - dset_name,& - nfields,& - nrecords,& - errcode ) + SUBROUTINE h5tbget_table_info_f(loc_id,& + dset_name,& + nfields,& + nrecords,& + errcode ) - IMPLICIT NONE + IMPLICIT NONE ! !This definition is needed for Windows DLLs @@ -1774,34 +1673,32 @@ SUBROUTINE h5tbget_table_info_f(loc_id,& !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), INTENT(inout):: nfields ! nfields - INTEGER(hsize_t), INTENT(inout):: nrecords ! nrecords - INTEGER :: errcode ! error code - INTEGER(size_t) :: namelen ! name length - - INTERFACE - INTEGER FUNCTION h5tbget_table_info_c(loc_id,namelen,dset_name,nfields,nrecords) - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBGET_TABLE_INFO_C'::h5tbget_table_info_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), INTENT(inout):: nfields ! nfields - INTEGER(hsize_t), INTENT(inout):: nrecords ! nrecords - INTEGER(size_t) :: namelen ! name length - END FUNCTION h5tbget_table_info_c - END INTERFACE - - namelen = LEN(dset_name) - errcode = h5tbget_table_info_c(loc_id,namelen,dset_name,nfields,nrecords) - -END SUBROUTINE h5tbget_table_info_f - + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + INTEGER(hsize_t), INTENT(inout):: nfields ! nfields + INTEGER(hsize_t), INTENT(inout):: nrecords ! nrecords + INTEGER :: errcode ! error code + INTEGER(size_t) :: namelen ! name length + + INTERFACE + INTEGER FUNCTION h5tbget_table_info_c(loc_id,namelen,dset_name,nfields,nrecords) & + BIND(C,NAME='h5tbget_table_info_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + INTEGER(hsize_t), INTENT(inout):: nfields ! nfields + INTEGER(hsize_t), INTENT(inout):: nrecords ! nrecords + INTEGER(size_t) :: namelen ! name length + END FUNCTION h5tbget_table_info_c + END INTERFACE + + namelen = LEN(dset_name) + errcode = h5tbget_table_info_c(loc_id,namelen,dset_name,nfields,nrecords) + + END SUBROUTINE h5tbget_table_info_f + !------------------------------------------------------------------------- ! Function: h5tbget_field_info_f @@ -1822,75 +1719,72 @@ END SUBROUTINE h5tbget_table_info_f ! !------------------------------------------------------------------------- -SUBROUTINE h5tbget_field_info_f(loc_id,& - dset_name,& - nfields,& - field_names,& - field_sizes,& - field_offsets,& - type_size,& - errcode, maxlen_out ) - - IMPLICIT NONE + SUBROUTINE h5tbget_field_info_f(loc_id,& + dset_name,& + nfields,& + field_names,& + field_sizes,& + field_offsets,& + type_size,& + errcode, maxlen_out ) + + IMPLICIT NONE ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_HL_DLL) !DEC$attributes dllexport :: h5tbget_field_info_f !DEC$endif ! - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), INTENT(in) :: nfields ! nfields - CHARACTER(LEN=*), DIMENSION(nfields), INTENT(inout) :: field_names ! field names - INTEGER(size_t), DIMENSION(nfields), INTENT(inout) :: field_sizes ! field sizes - INTEGER(size_t), DIMENSION(nfields), INTENT(inout) :: field_offsets ! field offsets - INTEGER(size_t), INTENT(inout):: type_size ! type size - INTEGER :: errcode ! error code - INTEGER, OPTIONAL :: maxlen_out ! maximum character len of the field names - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t), DIMENSION(nfields) :: namelen2 ! name lengths - INTEGER(hsize_t) :: i ! general purpose integer - INTEGER(size_t) :: maxlen - INTEGER(size_t) :: c_maxlen_out - - INTERFACE - INTEGER FUNCTION h5tbget_field_info_c(loc_id,namelen,dset_name,nfields,& - field_sizes,field_offsets,type_size,namelen2, maxlen, field_names, c_maxlen_out) - - USE h5global - IMPLICIT NONE - !DEC$IF DEFINED(HDF5F90_WINDOWS) - !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBGET_FIELD_INFO_C'::h5tbget_field_info_c - !DEC$ENDIF - !DEC$ATTRIBUTES reference :: dset_name - INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier - CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset - INTEGER(hsize_t), INTENT(in):: nfields ! nfields - CHARACTER(LEN=*), DIMENSION(1:nfields), INTENT(inout) :: field_names ! field names - INTEGER(size_t), DIMENSION(1:nfields), INTENT(inout) :: field_sizes ! field sizes - INTEGER(size_t), DIMENSION(1:nfields), INTENT(inout) :: field_offsets ! field offsets - INTEGER(size_t), INTENT(inout):: type_size ! type size - INTEGER(size_t) :: namelen ! name length - INTEGER(size_t) :: maxlen ! maxiumum length of input field names - INTEGER(size_t), DIMENSION(1:nfields) :: namelen2 ! name lengths - INTEGER(size_t) :: c_maxlen_out ! maximum character length of a field array element - END FUNCTION h5tbget_field_info_c - END INTERFACE - - namelen = LEN(dset_name) - DO i = 1, nfields - namelen2(i) = LEN_TRIM(field_names(i)) - END DO - maxlen = LEN(field_names(1)) - c_maxlen_out = 0 - - errcode = h5tbget_field_info_c(loc_id, namelen,dset_name, nfields, & - field_sizes, field_offsets, type_size, namelen2, maxlen, field_names, c_maxlen_out) - - IF(PRESENT(maxlen_out)) maxlen_out = c_maxlen_out - -END SUBROUTINE h5tbget_field_info_f - + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(LEN=*), INTENT(in) :: dset_name ! name of the dataset + INTEGER(hsize_t), INTENT(in) :: nfields ! nfields + CHARACTER(LEN=*), DIMENSION(nfields), INTENT(inout) :: field_names ! field names + INTEGER(size_t), DIMENSION(nfields), INTENT(inout) :: field_sizes ! field sizes + INTEGER(size_t), DIMENSION(nfields), INTENT(inout) :: field_offsets ! field offsets + INTEGER(size_t), INTENT(inout):: type_size ! type size + INTEGER :: errcode ! error code + INTEGER, OPTIONAL :: maxlen_out ! maximum character len of the field names + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t), DIMENSION(nfields) :: namelen2 ! name lengths + INTEGER(hsize_t) :: i ! general purpose integer + INTEGER(size_t) :: maxlen + INTEGER(size_t) :: c_maxlen_out + + INTERFACE + INTEGER FUNCTION h5tbget_field_info_c(loc_id,namelen,dset_name,nfields,& + field_sizes,field_offsets,type_size,namelen2, maxlen, field_names, c_maxlen_out) & + BIND(C,NAME='h5tbget_field_info_c') + IMPORT :: C_CHAR + IMPORT :: HID_T, SIZE_T, HSIZE_T + IMPLICIT NONE + INTEGER(hid_t), INTENT(in) :: loc_id ! file or group identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name ! name of the dataset + INTEGER(hsize_t), INTENT(in):: nfields ! nfields + CHARACTER(KIND=C_CHAR), DIMENSION(1:nfields), INTENT(inout) :: field_names ! field names + INTEGER(size_t), DIMENSION(1:nfields), INTENT(inout) :: field_sizes ! field sizes + INTEGER(size_t), DIMENSION(1:nfields), INTENT(inout) :: field_offsets ! field offsets + INTEGER(size_t), INTENT(inout):: type_size ! type size + INTEGER(size_t) :: namelen ! name length + INTEGER(size_t) :: maxlen ! maxiumum length of input field names + INTEGER(size_t), DIMENSION(1:nfields) :: namelen2 ! name lengths + INTEGER(size_t) :: c_maxlen_out ! maximum character length of a field array element + END FUNCTION h5tbget_field_info_c + END INTERFACE + + namelen = LEN(dset_name) + DO i = 1, nfields + namelen2(i) = LEN_TRIM(field_names(i)) + END DO + maxlen = LEN(field_names(1)) + c_maxlen_out = 0 + + errcode = h5tbget_field_info_c(loc_id, namelen,dset_name, nfields, & + field_sizes, field_offsets, type_size, namelen2, maxlen, field_names, c_maxlen_out) + + IF(PRESENT(maxlen_out)) maxlen_out = c_maxlen_out + + END SUBROUTINE h5tbget_field_info_f + END MODULE H5TB |