summaryrefslogtreecommitdiffstats
path: root/hl/fortran/src/H5LTfc.c
diff options
context:
space:
mode:
authorPedro Vicente Nunes <pvn@hdfgroup.org>2004-12-08 20:31:25 (GMT)
committerPedro Vicente Nunes <pvn@hdfgroup.org>2004-12-08 20:31:25 (GMT)
commitdd7c7944690a1d9958069b925231c7cd6623857c (patch)
tree03f76e4cded94faa8fc170feccc636047c3b305a /hl/fortran/src/H5LTfc.c
parent38eedcb94c85404ef82b53cd1ffdacfacbcef14c (diff)
downloadhdf5-dd7c7944690a1d9958069b925231c7cd6623857c.zip
hdf5-dd7c7944690a1d9958069b925231c7cd6623857c.tar.gz
hdf5-dd7c7944690a1d9958069b925231c7cd6623857c.tar.bz2
[svn-r9644] Purpose:
add hl fortran Description: Solution: Platforms tested: linux (absfot and pgf90) solaris (32 and 64 bit) AIX note : HP gives a compiling error , to be fixed in the future Misc. update:
Diffstat (limited to 'hl/fortran/src/H5LTfc.c')
-rwxr-xr-xhl/fortran/src/H5LTfc.c1012
1 files changed, 1012 insertions, 0 deletions
diff --git a/hl/fortran/src/H5LTfc.c b/hl/fortran/src/H5LTfc.c
new file mode 100755
index 0000000..f2b1aca
--- /dev/null
+++ b/hl/fortran/src/H5LTfc.c
@@ -0,0 +1,1012 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by the Board of Trustees of the University of Illinois. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the files COPYING and Copyright.html. COPYING can be found at the root *
+ * of the source code distribution tree; Copyright.html can be found at the *
+ * root level of an installed copy of the electronic HDF5 document set and *
+ * is linked from the top-level documents page. It can also be found at *
+ * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
+ * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/* This files contains C stubs for H5D Fortran APIs */
+
+#include "H5LT.h"
+#include "H5LTf90proto.h"
+#include <stdlib.h>
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5LTmake_dataset_c
+ *
+ * Purpose: Call H5LTmake_dataset
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: September 09, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltmake_dataset_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank,
+ hsize_t_f *dims,
+ hid_t_f *type_id,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ hid_t c_type_id;
+ char *c_name;
+ int c_namelen;
+ hsize_t *c_dims;
+ int i;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_dims = malloc(sizeof(hsize_t) * (*rank ));
+ if (!c_dims) return ret_value;
+
+/*
+ * Transpose dimension arrays because of C-FORTRAN storage order
+ */
+ for (i = 0; i < *rank ; i++) {
+ c_dims[i] = dims[*rank - i - 1];
+ }
+
+/*
+ * Call H5LTmake_dataset function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+ c_type_id = (hid_t)*type_id;
+
+ ret = H5LTmake_dataset(c_loc_id, c_name, *rank, c_dims, c_type_id, buf );
+
+ free (c_dims);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5LTread_dataset_c
+ *
+ * Purpose: Call H5LTmake_dataset
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: September 09, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltread_dataset_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hid_t_f *type_id,
+ void *buf,
+ hsize_t_f *dims)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ hid_t c_type_id;
+ char *c_name;
+ int c_namelen;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+/*
+ * Call H5LTread_dataset function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+ c_type_id = (hid_t)*type_id;
+
+ ret = H5LTread_dataset(c_loc_id, c_name, c_type_id, buf );
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5LTmake_dataset_string_c
+ *
+ * Purpose: Call H5LTmake_dataset
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: September 09, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltmake_dataset_string_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ char *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+/*
+ * Call H5LTmake_dataset_string function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5LTmake_dataset_string(c_loc_id,c_name,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5LTread_dataset_string_c
+ *
+ * Purpose: Call H5LTread_dataset_string
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: September 09, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltread_dataset_string_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ char *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+/*
+ * Call H5LTread_dataset_string function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5LTread_dataset_string(c_loc_id,c_name,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5LTset_attribute_int_c
+ *
+ * Purpose: Call H5LTset_attribute_int
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 05, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltset_attribute_int_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ size_t_f *size,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ char *c_attrname;
+ int c_namelen;
+ int c_attrnamelen;
+ size_t c_size;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_attrnamelen = *attrnamelen;
+ c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+ if (c_attrname == NULL) return ret_value;
+
+/*
+ * Call H5LTset_attribute_int function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+ c_size = (size_t)*size;
+
+ ret = H5LTset_attribute_int(c_loc_id,c_name,c_attrname,buf,c_size);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+/*-------------------------------------------------------------------------
+ * Function: H5LTset_attribute_float_c
+ *
+ * Purpose: Call H5LTset_attribute_int
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 05, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltset_attribute_float_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ size_t_f *size,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ char *c_attrname;
+ int c_namelen;
+ int c_attrnamelen;
+ size_t c_size;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_attrnamelen = *attrnamelen;
+ c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+ if (c_attrname == NULL) return ret_value;
+
+/*
+ * Call H5LTset_attribute_int function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+ c_size = (size_t)*size;
+
+ ret = H5LTset_attribute_float(c_loc_id,c_name,c_attrname,buf,c_size);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5LTset_attribute_double_c
+ *
+ * Purpose: Call H5LTset_attribute_int
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 05, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltset_attribute_double_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ size_t_f *size,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ char *c_attrname;
+ int c_namelen;
+ int c_attrnamelen;
+ size_t c_size;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_attrnamelen = *attrnamelen;
+ c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+ if (c_attrname == NULL) return ret_value;
+
+/*
+ * Call H5LTset_attribute_int function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+ c_size = (size_t)*size;
+
+ ret = H5LTset_attribute_double(c_loc_id,c_name,c_attrname,buf,c_size);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+/*-------------------------------------------------------------------------
+ * Function: H5LTset_attribute_string_c
+ *
+ * Purpose: Call H5LTset_attribute_int
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 05, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltset_attribute_string_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ char *c_attrname;
+ int c_namelen;
+ int c_attrnamelen;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_attrnamelen = *attrnamelen;
+ c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+ if (c_attrname == NULL) return ret_value;
+
+/*
+ * Call H5LTset_attribute_int function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5LTset_attribute_string(c_loc_id,c_name,c_attrname,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+/*-------------------------------------------------------------------------
+ * Function: H5LTget_attribute_int_c
+ *
+ * Purpose: Call H5LTget_attribute_int
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 05, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltget_attribute_int_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+ char *c_attrname;
+ int c_attrnamelen;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_attrnamelen = *attrnamelen;
+ c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+ if (c_attrname == NULL) return ret_value;
+
+/*
+ * Call H5LTget_attribute_int function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5LTget_attribute_int(c_loc_id,c_name,c_attrname,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5LTget_attribute_float_c
+ *
+ * Purpose: Call H5LTget_attribute_float
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 05, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltget_attribute_float_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+ char *c_attrname;
+ int c_attrnamelen;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_attrnamelen = *attrnamelen;
+ c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+ if (c_attrname == NULL) return ret_value;
+
+/*
+ * Call H5LTget_attribute_int function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5LTget_attribute_float(c_loc_id,c_name,c_attrname,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+/*-------------------------------------------------------------------------
+ * Function: H5LTget_attribute_double_c
+ *
+ * Purpose: Call H5LTget_attribute_double
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 05, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltget_attribute_double_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+ char *c_attrname;
+ int c_attrnamelen;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_attrnamelen = *attrnamelen;
+ c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+ if (c_attrname == NULL) return ret_value;
+
+/*
+ * Call H5LTget_attribute_int function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5LTget_attribute_double(c_loc_id,c_name,c_attrname,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+/*-------------------------------------------------------------------------
+ * Function: H5LTget_attribute_string_c
+ *
+ * Purpose: Call H5LTget_attribute_string
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 05, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltget_attribute_string_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+ char *c_attrname;
+ int c_attrnamelen;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_attrnamelen = *attrnamelen;
+ c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+ if (c_attrname == NULL) return ret_value;
+
+/*
+ * Call H5LTget_attribute_int function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5LTget_attribute_string(c_loc_id,c_name,c_attrname,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5LTget_dataset_ndims_c
+ *
+ * Purpose: Call H5LTget_dataset_ndims
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: September 09, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltget_dataset_ndims_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+/*
+ * Call H5LTget_dataset_ndims function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5LTget_dataset_ndims(c_loc_id, c_name, rank);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5ltfind_dataset_c
+ *
+ * Purpose: Call H5LTfind_dataset
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: September 09, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltfind_dataset_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name)
+{
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return -1;
+
+/*
+ * Call H5LTget_dataset_ndims function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ return( H5LTfind_dataset(c_loc_id, c_name));
+
+}
+
+/*-------------------------------------------------------------------------
+ * Function: h5ltget_dataset_info_c
+ *
+ * Purpose: Call H5LTget_dataset_info
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: September 09, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltget_dataset_info_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *dims,
+ int_f *type_class,
+ size_t_f *type_size)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+ H5T_class_t c_classtype;
+ size_t c_type_size;
+ hsize_t c_dims[32];
+ int i;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+/*
+ * Call H5LTget_dataset_ndims function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5LTget_dataset_info(c_loc_id, c_name, c_dims, &c_classtype, &c_type_size);
+
+ *type_class = c_classtype;
+ *type_size = c_type_size;
+ for (i = 0; i < 32 ; i++) {
+ dims[i] = (hsize_t_f) c_dims[i];
+ }
+
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+/*-------------------------------------------------------------------------
+ * Function: h5ltget_attribute_ndims_c
+ *
+ * Purpose: Call H5LTget_attribute_ndims
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 05, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltget_attribute_ndims_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ int_f *rank)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ char *c_attrname;
+ int c_namelen;
+ int c_attrnamelen;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_attrnamelen = *attrnamelen;
+ c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+ if (c_attrname == NULL) return ret_value;
+
+/*
+ * Call H5LTset_attribute_int function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5LTget_attribute_ndims(c_loc_id,c_name,c_attrname,rank);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5ltget_attribute_info_c
+ *
+ * Purpose: Call H5LTget_attribute_info
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: September 09, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5ltget_attribute_info_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *attrnamelen,
+ _fcd attrname,
+ hsize_t_f *dims,
+ int_f *type_class,
+ size_t_f *type_size)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ char *c_attrname;
+ int c_namelen;
+ int c_attrnamelen;
+ H5T_class_t c_classtype;
+ size_t c_type_size;
+ hsize_t c_dims[32];
+ int i;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_attrnamelen = *attrnamelen;
+ c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+ if (c_attrname == NULL) return ret_value;
+
+/*
+ * Call H5LTget_dataset_ndims function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5LTget_attribute_info(c_loc_id,c_name,c_attrname,c_dims,&c_classtype,&c_type_size);
+
+ *type_class = c_classtype;
+ *type_size = c_type_size;
+ for (i = 0; i < 32 ; i++) {
+ dims[i] = (hsize_t_f) c_dims[i];
+ }
+
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}