summaryrefslogtreecommitdiffstats
path: root/hl/fortran/src
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
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')
-rw-r--r--hl/fortran/src/Dependencies4
-rwxr-xr-xhl/fortran/src/H5IMfc.c705
-rwxr-xr-xhl/fortran/src/H5IMff.f90674
-rwxr-xr-xhl/fortran/src/H5LTf90proto.h525
-rwxr-xr-xhl/fortran/src/H5LTfc.c1012
-rwxr-xr-xhl/fortran/src/H5LTff.f902991
-rwxr-xr-xhl/fortran/src/H5TBfc.c715
-rwxr-xr-xhl/fortran/src/H5TBff.f901684
-rwxr-xr-xhl/fortran/src/H5f90i.h228
-rw-r--r--hl/fortran/src/Makefile.in75
10 files changed, 8613 insertions, 0 deletions
diff --git a/hl/fortran/src/Dependencies b/hl/fortran/src/Dependencies
new file mode 100644
index 0000000..b23c854
--- /dev/null
+++ b/hl/fortran/src/Dependencies
@@ -0,0 +1,4 @@
+H5LTff.lo: $(srcdir)/H5LTff.f90
+H5IMff.lo: $(srcdir)/H5IMff.f90
+H5TBff.lo: $(srcdir)/H5TBff.f90
+
diff --git a/hl/fortran/src/H5IMfc.c b/hl/fortran/src/H5IMfc.c
new file mode 100755
index 0000000..fed4111
--- /dev/null
+++ b/hl/fortran/src/H5IMfc.c
@@ -0,0 +1,705 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * 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 "H5IM.h"
+#include "H5LTf90proto.h"
+#include <stdlib.h>
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5immake_image_8bit_c
+ *
+ * Purpose: Call H5IMmake_image_8bit
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 05, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5immake_image_8bit_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *width,
+ hsize_t_f *height,
+ unsigned 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 H5IMmake_image_8bit function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5IMmake_image_8bit(c_loc_id,c_name,*width,*height,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+/*-------------------------------------------------------------------------
+ * Function: h5imread_image_c
+ *
+ * Purpose: Call H5IMread_image
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 05, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5imread_image_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ unsigned 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 H5IMread_image function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5IMread_image(c_loc_id,c_name,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+/*-------------------------------------------------------------------------
+ * Function: h5immake_image_24bit_c
+ *
+ * Purpose: Call H5IMmake_image_24bit
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 05, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5immake_image_24bit_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *ilen,
+ _fcd il,
+ hsize_t_f *width,
+ hsize_t_f *height,
+ unsigned char *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+ char *c_il;
+ int c_ilen;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_ilen = *ilen;
+ c_il = (char *)HD5f2cstring(il, c_ilen);
+ if (c_il == NULL) return ret_value;
+
+/*
+ * Call H5IMmake_image_24bit function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5IMmake_image_24bit(c_loc_id,c_name,*width,*height,c_il,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+/*-------------------------------------------------------------------------
+ * Function: h5imget_image_info_c
+ *
+ * Purpose: Call H5IMget_image_info
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 05, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5imget_image_info_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *width,
+ hsize_t_f *height,
+ hsize_t_f *planes,
+ hsize_t_f *npals,
+ int_f *ilen,
+ _fcd interlace)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+ hsize_t c_width;
+ hsize_t c_height;
+ hsize_t c_planes;
+ hssize_t c_npals;
+ char *c_buf=NULL; /* Buffer to hold C string */
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+/*
+ * Allocate buffer to hold name of an attribute
+ */
+ if ((c_buf = malloc((size_t)*ilen +1)) == NULL)
+ return ret_value;
+
+/*
+ * Call H5IMget_image_info function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5IMget_image_info(c_loc_id,c_name,&c_width,&c_height,&c_planes,c_buf,&c_npals);
+
+ *width = (hsize_t_f) c_width;
+ *height = (hsize_t_f) c_height;
+ *planes = (hsize_t_f) c_planes;
+ *npals = (hsize_t_f) c_npals;
+
+
+/*
+ * Convert C name to FORTRAN and place it in the given buffer
+ */
+ HD5packFstring(c_buf, _fcdtocp(interlace), (size_t)*ilen);
+
+ if(c_buf) free(c_buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5imis_image_c
+ *
+ * Purpose: Call H5IMis_image
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 06, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5imis_image_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( H5IMis_image(c_loc_id, c_name));
+
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5immake_palette_c
+ *
+ * Purpose: Call H5IMmake_palette
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 06, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5immake_palette_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *dims,
+ unsigned char *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+ hsize_t *c_dims;
+ int i;
+ int rank=2;
+
+/*
+ * 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;
+
+ for (i = 0; i < rank ; i++) {
+ c_dims[i] = dims[i];
+ }
+
+/*
+ * Call H5IMmake_palette function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5IMmake_palette(c_loc_id,c_name,c_dims,buf);
+
+ free (c_dims);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5imlink_palette_c
+ *
+ * Purpose: Call H5IMlink_palette
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 06, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5imlink_palette_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *ilen,
+ _fcd pal_name)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+ char *c_namepal;
+ int c_namelenpal;
+
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_namelenpal = *ilen;
+ c_namepal = (char *)HD5f2cstring(pal_name, c_namelenpal);
+ if (c_namepal == NULL) return ret_value;
+
+/*
+ * Call H5IMlink_palette function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5IMlink_palette(c_loc_id,c_name,c_namepal);
+
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5imunlink_palette_c
+ *
+ * Purpose: Call H5IMunlink_palette
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 06, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5imunlink_palette_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *ilen,
+ _fcd pal_name)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+ char *c_namepal;
+ int c_namelenpal;
+
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_namelenpal = *ilen;
+ c_namepal = (char *)HD5f2cstring(pal_name, c_namelenpal);
+ if (c_namepal == NULL) return ret_value;
+
+/*
+ * Call H5IMunlink_palette function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5IMunlink_palette(c_loc_id,c_name,c_namepal);
+
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5imget_npalettes_c
+ *
+ * Purpose: Call H5IMget_npalettes
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 06 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5imget_npalettes_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *npals)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+ hssize_t c_npals;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ /*
+ * Call H5IMget_image_info function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5IMget_npalettes(c_loc_id,c_name,&c_npals);
+
+ *npals = (hsize_t_f) c_npals;
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5imget_palette_info_c
+ *
+ * Purpose: Call H5IMget_palette_info
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 06 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+
+int_f
+nh5imget_palette_info_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *pal_number,
+ hsize_t_f *dims)
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_loc_id;
+ char *c_name;
+ int c_namelen;
+ hsize_t c_dims[2];
+ 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 H5IMget_image_info function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5IMget_palette_info(c_loc_id,c_name,*pal_number,c_dims);
+
+ for (i = 0; i < 2 ; i++) {
+ dims[i] = (hsize_t_f) c_dims[i];
+ }
+
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5imget_palette_c
+ *
+ * Purpose: Call H5IMget_palette
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 06 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+
+int_f
+nh5imget_palette_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *pal_number,
+ unsigned 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 H5IMget_image_info function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ ret = H5IMget_palette(c_loc_id,c_name,*pal_number,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5imis_palette_c
+ *
+ * Purpose: Call H5IMis_palette
+ *
+ * Return: true, false, fail
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 06, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5imis_palette_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 H5IMis_palette function.
+ */
+ c_loc_id = (hid_t)*loc_id;
+
+ return( H5IMis_palette(c_loc_id, c_name));
+
+}
diff --git a/hl/fortran/src/H5IMff.f90 b/hl/fortran/src/H5IMff.f90
new file mode 100755
index 0000000..276b302
--- /dev/null
+++ b/hl/fortran/src/H5IMff.f90
@@ -0,0 +1,674 @@
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! 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 file contains FORTRAN90 interfaces for H5IM functions
+!
+
+module H5IM
+use H5FORTRAN_TYPES
+use HDF5
+contains
+
+
+!-------------------------------------------------------------------------
+! Function: h5immake_image_8bit_f
+!
+! Purpose: Creates and writes an image an 8 bit image
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5immake_image_8bit_f(loc_id,&
+ dset_name,&
+ width,&
+ height,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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) :: width ! width of image
+ integer(HSIZE_T), intent(IN) :: height ! height of image
+ integer*1, intent(IN), dimension(*) :: buf ! 1 byte integer data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5immake_image_8bit_c(loc_id,namelen,dset_name,width,height,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5IMMAKE_IMAGE_8BIT_C'::h5immake_image_8bit_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), intent(IN) :: width ! width of image
+ integer(HSIZE_T), intent(IN) :: height ! height of image
+ integer*1, intent(IN), dimension(*) :: buf ! 1 byte integer data buffer
+ end function h5immake_image_8bit_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5immake_image_8bit_c(loc_id,namelen,dset_name,width,height,buf)
+
+end subroutine h5immake_image_8bit_f
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5imread_image_f
+!
+! Purpose: Reads image data from disk.
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+
+subroutine h5imread_image_f(loc_id,&
+ dset_name,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer*1, intent(INOUT), dimension(*) :: buf ! 1 byte integer data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5imread_image_c(loc_id,namelen,dset_name,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5IMREAD_IMAGE_C'::h5imread_image_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer*1, intent(INOUT), dimension(*) :: buf ! 1 byte integer data buffer
+ end function h5imread_image_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5imread_image_c(loc_id,namelen,dset_name,buf)
+
+end subroutine h5imread_image_f
+
+
+!-------------------------------------------------------------------------
+! Function: h5immake_image_24bit_f
+!
+! Purpose: Creates and writes an image a 24 bit image
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5immake_image_24bit_f(loc_id,&
+ dset_name,&
+ width,&
+ height,&
+ il,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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) :: width ! width of image
+ integer(HSIZE_T), intent(IN) :: height ! height of image
+ character(LEN=*), intent(IN) :: il ! interlace
+ integer*1, intent(IN), dimension(*) :: buf ! 1 byte integer data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer :: ilen ! name length
+
+ interface
+ integer function h5immake_image_24bit_c(loc_id,namelen,dset_name,ilen,il,width,height,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5IMMAKE_IMAGE_24BIT_C'::h5immake_image_24bit_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: il
+ 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) :: width ! width of image
+ integer(HSIZE_T), intent(IN) :: height ! height of image
+ character(LEN=*), intent(IN) :: il ! interlace
+ integer*1, intent(IN), dimension(*) :: buf ! 1 byte integer data buffer
+ integer :: namelen ! lenght of name buffer
+ integer :: ilen ! name length
+
+ end function h5immake_image_24bit_c
+ end interface
+
+ namelen = len(dset_name)
+ ilen = len(il)
+ errcode = h5immake_image_24bit_c(loc_id,namelen,dset_name,ilen,il,width,height,buf)
+
+end subroutine h5immake_image_24bit_f
+
+
+!-------------------------------------------------------------------------
+! Function: h5imget_image_info_f
+!
+! Purpose: Gets information about an image dataset (dimensions, interlace mode
+! and number of associated palettes).
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5imget_image_info_f(loc_id,&
+ dset_name,&
+ width,&
+ height,&
+ planes,&
+ interlace,&
+ npals,&
+ errcode )
+
+ implicit none
+ 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) :: width ! width of image
+ integer(HSIZE_T), intent(INOUT) :: height ! height of image
+ integer(HSIZE_T), intent(INOUT) :: planes ! color planes
+ integer(HSIZE_T), intent(INOUT) :: npals ! palettes
+ character(LEN=*), intent(INOUT) :: interlace ! interlace
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer :: ilen ! name length
+
+ interface
+ integer function h5imget_image_info_c(loc_id,namelen,dset_name,width,height,planes,npals,ilen,interlace)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5IMGET_IMAGE_INFO_C'::h5imget_image_info_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: interlace
+ 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) :: width ! width of image
+ integer(HSIZE_T), intent(INOUT) :: height ! height of image
+ integer(HSIZE_T), intent(INOUT) :: planes ! color planes
+ integer(HSIZE_T), intent(INOUT) :: npals ! palettes
+ character(LEN=*), intent(INOUT) :: interlace ! interlace
+ integer :: namelen ! name length
+ integer :: ilen ! name length
+ end function h5imget_image_info_c
+ end interface
+
+ namelen = len(dset_name)
+ ilen = len(interlace)
+ errcode = h5imget_image_info_c(loc_id,namelen,dset_name,width,height,planes,npals,ilen,interlace)
+
+end subroutine h5imget_image_info_f
+
+
+!-------------------------------------------------------------------------
+! Function: h5imis_image_f
+!
+! Purpose: Inquires if a dataset is an image
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+integer function h5imis_image_f(loc_id,&
+ dset_name)
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5imis_image_c(loc_id,namelen,dset_name)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5IMIS_IMAGE_C'::h5imis_image_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ end function h5imis_image_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5imis_image_c(loc_id,namelen,dset_name)
+ h5imis_image_f = errcode
+
+end function h5imis_image_f
+
+
+!-------------------------------------------------------------------------
+! Function: h5immake_palette_f
+!
+! Purpose: Creates and writes a palette
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 06, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5immake_palette_f(loc_id,&
+ dset_name,&
+ pal_dims,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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), dimension(*) :: pal_dims ! dimensions
+ integer*1, intent(IN), dimension(*) :: buf ! 1 byte integer data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5immake_palette_c(loc_id,namelen,dset_name,pal_dims,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5IMMAKE_PALETTE_C'::h5immake_palette_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), intent(IN), dimension(*) :: pal_dims ! dimensions
+ integer*1, intent(IN), dimension(*) :: buf ! 1 byte integer data buffer
+ end function h5immake_palette_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5immake_palette_c(loc_id,namelen,dset_name,pal_dims,buf)
+
+end subroutine h5immake_palette_f
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5imlink_palette_f
+!
+! Purpose: This function attaches a palette to an existing image dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 06, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5imlink_palette_f(loc_id,&
+ dset_name,&
+ pal_name,&
+ errcode )
+
+ implicit none
+ 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) :: pal_name ! palette name
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer :: ilen ! name length
+
+ interface
+ integer function h5imlink_palette_c(loc_id,namelen,dset_name,ilen,pal_name)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5IMLINK_PALETTE_C'::h5imlink_palette_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: pal_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) :: pal_name ! palette name
+ integer :: namelen ! name length
+ integer :: ilen ! name length
+ end function h5imlink_palette_c
+ end interface
+
+ namelen = len(dset_name)
+ ilen = len(pal_name)
+ errcode = h5imlink_palette_c(loc_id,namelen,dset_name,ilen,pal_name)
+
+end subroutine h5imlink_palette_f
+
+
+!-------------------------------------------------------------------------
+! Function: h5imunlink_palette_f
+!
+! Purpose: This function dettaches a palette to an existing image dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 06, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5imunlink_palette_f(loc_id,&
+ dset_name,&
+ pal_name,&
+ errcode )
+
+ implicit none
+ 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) :: pal_name ! palette name
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer :: ilen ! name length
+
+ interface
+ integer function h5imunlink_palette_c(loc_id,namelen,dset_name,ilen,pal_name)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5IMUNLINK_PALETTE_C'::h5imunlink_palette_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: pal_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) :: pal_name ! palette name
+ integer :: namelen ! name length
+ integer :: ilen ! name length
+ end function h5imunlink_palette_c
+ end interface
+
+ namelen = len(dset_name)
+ ilen = len(pal_name)
+ errcode = h5imunlink_palette_c(loc_id,namelen,dset_name,ilen,pal_name)
+
+end subroutine h5imunlink_palette_f
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5imget_npalettes_f
+!
+! Purpose: Gets the number of palettes associated to an image
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5imget_npalettes_f(loc_id,&
+ dset_name,&
+ npals,&
+ errcode )
+
+ implicit none
+ 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) :: npals ! palettes
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5imget_npalettes_c(loc_id,namelen,dset_name,npals)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5IMGET_NPALETTES_C'::h5imget_npalettes_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) :: npals ! palettes
+ integer :: namelen ! name length
+ end function h5imget_npalettes_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5imget_npalettes_c(loc_id,namelen,dset_name,npals)
+
+end subroutine h5imget_npalettes_f
+
+
+!-------------------------------------------------------------------------
+! Function: h5imget_palette_info_f
+!
+! Purpose: Get palette information
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 06, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5imget_palette_info_f(loc_id,&
+ dset_name,&
+ pal_number,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: pal_number ! palette number
+ integer(HSIZE_T), dimension(*), intent(INOUT) :: dims ! dimensions
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5imget_palette_info_c(loc_id,namelen,dset_name,pal_number,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5IMGET_PALETTE_INFO_C'::h5imget_palette_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, intent(IN) :: pal_number ! palette number
+ integer(HSIZE_T), dimension(*), intent(INOUT) :: dims ! dimensions
+ integer :: namelen ! name length
+ end function h5imget_palette_info_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5imget_palette_info_c(loc_id,namelen,dset_name,pal_number,dims)
+
+end subroutine h5imget_palette_info_f
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5imget_palette_f
+!
+! Purpose: Reads palette
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 06, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+
+subroutine h5imget_palette_f(loc_id,&
+ dset_name,&
+ pal_number,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: pal_number ! palette number
+ integer*1, intent(INOUT), dimension(*) :: buf ! 1 byte integer data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5imget_palette_c(loc_id,namelen,dset_name,pal_number,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5IMGET_PALETTE_C'::h5imget_palette_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: pal_number ! palette number
+ integer*1, intent(INOUT), dimension(*) :: buf ! 1 byte integer data buffer
+ end function h5imget_palette_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5imget_palette_c(loc_id,namelen,dset_name,pal_number,buf)
+
+end subroutine h5imget_palette_f
+
+
+!-------------------------------------------------------------------------
+! Function: h5imis_palette_f
+!
+! Purpose: Inquires if a dataset is a palette
+!
+! Return: true, false, fail
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 06, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+integer function h5imis_palette_f(loc_id,&
+ dset_name)
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5imis_palette_c(loc_id,namelen,dset_name)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5IMIS_PALETTE_C'::h5imis_palette_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ end function h5imis_palette_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5imis_palette_c(loc_id,namelen,dset_name)
+ h5imis_palette_f = errcode
+
+end function h5imis_palette_f
+
+
+! end
+!
+end module H5IM
+
+
+
+
+
diff --git a/hl/fortran/src/H5LTf90proto.h b/hl/fortran/src/H5LTf90proto.h
new file mode 100755
index 0000000..29d99eb
--- /dev/null
+++ b/hl/fortran/src/H5LTf90proto.h
@@ -0,0 +1,525 @@
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * 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. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+
+#ifndef _H5LTf90proto_H
+#define _H5LTf90proto_H
+
+#include "H5f90i.h"
+
+H5_DLL char* HD5f2cstring (_fcd fdesc, int len);
+H5_DLL void HD5packFstring (char *src, char *dest, size_t len);
+
+
+/*
+ * Functions from H5LTfc.c
+ */
+#ifndef H5Ff90_FNAMES
+# define H5Ff90_FNAMES
+#ifdef DF_CAPFNAMES
+# define nh5ltmake_dataset_c FNAME(H5LTMAKE_DATASET_C)
+# define nh5ltread_dataset_c FNAME(H5LTREAD_DATASET_C)
+# define nh5ltmake_dataset_string_c FNAME(H5LTMAKE_DATASET_STRING_C)
+# define nh5ltread_dataset_string_c FNAME(H5LTREAD_DATASET_STRING_C)
+
+
+# define nh5ltset_attribute_int_c FNAME(H5LTSET_ATTRIBUTE_INT_C)
+# define nh5ltset_attribute_float_c FNAME(H5LTSET_ATTRIBUTE_FLOAT_C)
+# define nh5ltset_attribute_double_c FNAME(H5LTSET_ATTRIBUTE_DOUBLE_C)
+# define nh5ltset_attribute_string_c FNAME(H5LTSET_ATTRIBUTE_STRING_C)
+
+# define nh5ltget_attribute_int_c FNAME(H5LTGET_ATTRIBUTE_INT_C)
+# define nh5ltget_attribute_float_c FNAME(H5LTGET_ATTRIBUTE_FLOAT_C)
+# define nh5ltget_attribute_double_c FNAME(H5LTGET_ATTRIBUTE_DOUBLE_C)
+# define nh5ltget_attribute_string_c FNAME(H5LTGET_ATTRIBUTE_STRING_C)
+
+# define nh5ltget_dataset_ndims_c FNAME(H5LTGET_DATASET_NDIMS_C)
+# define nh5ltfind_dataset_c FNAME(H5LTFIND_DATASET_C)
+# define nh5ltget_dataset_info_c FNAME(H5LTGET_DATASET_INFO_C)
+
+# define nh5ltget_attribute_ndims_c FNAME(H5LTGET_ATTRIBUTE_NDIMS_C)
+# define nh5ltget_attribute_info_c FNAME(H5LTGET_ATTRIBUTE_INFO_C)
+
+/*-------------------------------------------------------------------------
+ * Image
+ *-------------------------------------------------------------------------
+ */
+# define nh5immake_image_8bit_c FNAME(H5IMMAKE_IMAGE_8BIT_C)
+# define nh5immake_image_24bit_c FNAME(H5IMMAKE_IMAGE_24BIT_C)
+# define nh5imread_image_c FNAME(H5IMREAD_IMAGE_C)
+# define nh5imget_image_info_c FNAME(H5IMGET_IMAGE_INFO_C)
+# define nh5imis_image_c FNAME(H5IMIS_IMAGE_C)
+# define nh5immake_palette_c FNAME(H5IMMAKE_PALETTE_C)
+# define nh5imlink_palette_c FNAME(H5IMLINK_PALETTE_C)
+# define nh5imunlink_palette_c FNAME(H5IMUNLINK_PALETTE_C)
+# define nh5imget_npalettes_c FNAME(H5IMGET_NPALETTES_C)
+# define nh5imget_palette_info_c FNAME(H5IMGET_PALETTE_INFO_C)
+# define nh5imget_palette_c FNAME(H5IMGET_PALETTE_C)
+# define nh5imis_palette_c FNAME(H5IMIS_PALETTE_C)
+
+ /*-------------------------------------------------------------------------
+ * Table
+ *-------------------------------------------------------------------------
+ */
+# define nh5tbmake_table_c FNAME(H5TBMAKE_TABLE_C)
+# define nh5tbwrite_field_name_c FNAME(H5TBWRITE_FIELD_NAME_C)
+# define nh5tbread_field_name_c FNAME(H5TBREAD_FIELD_NAME_C)
+# define nh5tbwrite_field_index_c FNAME(H5TBWRITE_FIELD_INDEX_C)
+# define nh5tbread_field_index_c FNAME(H5TBREAD_FIELD_INDEX_C)
+# define nh5tbinsert_field_c FNAME(H5TBINSERT_FIELD_C)
+# define nh5tbdelete_field_c FNAME(H5TBDELETE_FIELD_C)
+# define nh5tbget_table_info_c FNAME(H5TBGET_TABLE_INFO_C)
+# define nh5tbget_field_info_c FNAME(H5TBGET_FIELD_INFO_C)
+
+
+
+
+
+#else /* !DF_CAPFNAMES */
+
+# define nh5ltmake_dataset_c FNAME(h5ltmake_dataset_c)
+# define nh5ltread_dataset_c FNAME(h5ltread_dataset_c)
+# define nh5ltmake_dataset_string_c FNAME(h5ltmake_dataset_string_c)
+# define nh5ltread_dataset_string_c FNAME(h5ltread_dataset_string_c)
+
+# define nh5ltset_attribute_int_c FNAME(h5ltset_attribute_int_c)
+# define nh5ltset_attribute_float_c FNAME(h5ltset_attribute_float_c)
+# define nh5ltset_attribute_double_c FNAME(h5ltset_attribute_double_c)
+# define nh5ltset_attribute_string_c FNAME(h5ltset_attribute_string_c)
+
+# define nh5ltget_attribute_int_c FNAME(h5ltget_attribute_int_c)
+# define nh5ltget_attribute_float_c FNAME(h5ltget_attribute_float_c)
+# define nh5ltget_attribute_double_c FNAME(h5ltget_attribute_double_c)
+# define nh5ltget_attribute_string_c FNAME(h5ltget_attribute_string_c)
+
+# define nh5ltget_dataset_ndims_c FNAME(h5ltget_dataset_ndims_c)
+# define nh5ltfind_dataset_c FNAME(h5ltfind_dataset_c)
+# define nh5ltget_dataset_info_c FNAME(h5ltget_dataset_info_c)
+
+# define nh5ltget_attribute_ndims_c FNAME(h5ltget_attribute_ndims_c)
+# define nh5ltget_attribute_info_c FNAME(h5ltget_attribute_info_c)
+
+/*-------------------------------------------------------------------------
+ * Image
+ *-------------------------------------------------------------------------
+ */
+# define nh5immake_image_8bit_c FNAME(h5immake_image_8bit_c)
+# define nh5immake_image_24bit_c FNAME(h5immake_image_24bit_c)
+# define nh5imread_image_c FNAME(h5imread_image_c)
+# define nh5imget_image_info_c FNAME(h5imget_image_info_c)
+# define nh5imis_image_c FNAME(h5imis_image_c)
+# define nh5immake_palette_c FNAME(h5immake_palette_c)
+# define nh5imlink_palette_c FNAME(h5imlink_palette_c)
+# define nh5imunlink_palette_c FNAME(h5imunlink_palette_c)
+# define nh5imget_npalettes_c FNAME(h5imget_npalettes_c)
+# define nh5imget_palette_info_c FNAME(h5imget_palette_info_c)
+# define nh5imget_palette_c FNAME(h5imget_palette_c)
+# define nh5imis_palette_c FNAME(h5imis_palette_c)
+
+/*-------------------------------------------------------------------------
+ * Table
+ *-------------------------------------------------------------------------
+ */
+# define nh5tbmake_table_c FNAME(h5tbmake_table_c)
+# define nh5tbwrite_field_name_c FNAME(h5tbwrite_field_name_c)
+# define nh5tbread_field_name_c FNAME(h5tbread_field_name_c)
+# define nh5tbwrite_field_index_c FNAME(h5tbwrite_field_index_c)
+# define nh5tbread_field_index_c FNAME(h5tbread_field_index_c)
+# define nh5tbinsert_field_c FNAME(h5tbinsert_field_c)
+# define nh5tbdelete_field_c FNAME(h5tbdelete_field_c)
+# define nh5tbget_table_info_c FNAME(h5tbget_table_info_c)
+# define nh5tbget_field_info_c FNAME(h5tbget_field_info_c)
+
+
+
+
+
+
+
+
+
+
+
+#endif /* DF_CAPFNAMES */
+#endif /* H5Ff90_FNAMES */
+
+H5_DLL
+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);
+
+H5_DLL
+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);
+
+
+H5_DLL
+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);
+
+H5_DLL
+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);
+
+H5_DLL
+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);
+
+H5_DLL
+int_f
+nh5ltset_attribute_string_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ void *buf);
+
+
+H5_DLL
+int_f
+nh5ltget_attribute_int_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ void *buf);
+
+H5_DLL
+int_f
+nh5ltget_attribute_float_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ void *buf);
+
+H5_DLL
+int_f
+nh5ltget_attribute_double_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ void *buf);
+
+H5_DLL
+int_f
+nh5ltget_attribute_string_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ void *buf);
+
+H5_DLL
+int_f
+h5ltget_dataset_ndims_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *rank);
+
+H5_DLL
+int_f
+nh5ltfind_dataset_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name);
+
+H5_DLL
+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);
+
+H5_DLL
+int_f
+nh5ltget_attribute_ndims_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd dsetname,
+ int_f *attrnamelen,
+ _fcd attrname,
+ int_f *rank);
+H5_DLL
+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);
+
+H5_DLL
+int_f
+nh5ltmake_dataset_string_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ char *buf);
+
+H5_DLL
+int_f
+nh5ltread_dataset_string_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ char *buf);
+
+/*-------------------------------------------------------------------------
+ * Image
+ *-------------------------------------------------------------------------
+ */
+
+H5_DLL
+int_f
+nh5immake_image_8bit_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *width,
+ hsize_t_f *height,
+ unsigned char *buf);
+H5_DLL
+int_f
+nh5imread_image_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ unsigned char *buf);
+
+H5_DLL
+int_f
+nh5immake_image_24bit_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *ilen,
+ _fcd il,
+ hsize_t_f *width,
+ hsize_t_f *height,
+ unsigned char *buf);
+H5_DLL
+int_f
+nh5imget_image_info_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *width,
+ hsize_t_f *height,
+ hsize_t_f *planes,
+ hsize_t_f *npals,
+ int_f *ilen,
+ _fcd interlace);
+
+
+H5_DLL
+int_f
+nh5imis_image_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name);
+
+
+H5_DLL
+int_f
+nh5immake_palette_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *dims,
+ unsigned char *buf);
+
+H5_DLL
+int_f
+nh5imlink_palette_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *ilen,
+ _fcd pal_name);
+
+H5_DLL
+int_f
+nh5imunlink_palette_c (hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *ilen,
+ _fcd pal_name);
+
+H5_DLL
+int_f
+nh5imget_npalettes_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *npals);
+
+
+H5_DLL
+int_f
+nh5imget_palette_info_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *pal_number,
+ hsize_t_f *dims);
+
+H5_DLL
+int_f
+nh5imget_palette_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *pal_number,
+ unsigned char *buf);
+
+H5_DLL
+int_f
+nh5imis_palette_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name);
+
+
+
+/*-------------------------------------------------------------------------
+ * Table
+ *-------------------------------------------------------------------------
+ */
+
+H5_DLL
+int_f
+nh5tbmake_table_c(int_f *namelen1,
+ _fcd name1,
+ hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *nfields,
+ hsize_t_f *nrecords,
+ size_t_f *type_size,
+ size_t_f *field_offset,
+ hid_t_f *field_types,
+ hsize_t_f *chunk_size,
+ int_f *compress,
+ int_f *len, /* field_names lenghts */
+ _fcd buf); /* field_names */
+
+H5_DLL
+int_f
+nh5tbwrite_field_name_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *namelen1,
+ _fcd field_name,
+ hsize_t_f *start,
+ hsize_t_f *nrecords,
+ size_t_f *type_size,
+ void *buf);
+
+H5_DLL
+int_f
+nh5tbread_field_name_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *namelen1,
+ _fcd field_name,
+ hsize_t_f *start,
+ hsize_t_f *nrecords,
+ size_t_f *type_size,
+ void *buf);
+
+H5_DLL
+int_f
+nh5tbwrite_field_index_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *field_index,
+ hsize_t_f *start,
+ hsize_t_f *nrecords,
+ size_t_f *type_size,
+ void *buf);
+
+H5_DLL
+int_f
+nh5tbread_field_index_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *field_index,
+ hsize_t_f *start,
+ hsize_t_f *nrecords,
+ size_t_f *type_size,
+ void *buf);
+
+H5_DLL
+int_f
+nh5tbinsert_field_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *namelen1,
+ _fcd field_name,
+ hid_t_f *field_type,
+ int_f *position,
+ void *buf);
+
+H5_DLL
+int_f
+nh5tbdelete_field_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *namelen1,
+ _fcd field_name);
+
+
+H5_DLL
+int_f
+nh5tbget_table_info_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *nfields,
+ hsize_t_f *nrecords);
+
+H5_DLL
+int_f
+nh5tbget_field_info_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *nfields,
+ size_t_f *field_sizes,
+ size_t_f *field_offsets,
+ size_t_f *type_size,
+ int_f *namelen2, /* field_names lenghts */
+ _fcd field_names) ; /* field_names */
+
+
+
+
+#endif /* _H5LTf90proto_H */
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;
+}
diff --git a/hl/fortran/src/H5LTff.f90 b/hl/fortran/src/H5LTff.f90
new file mode 100755
index 0000000..712f6d2
--- /dev/null
+++ b/hl/fortran/src/H5LTff.f90
@@ -0,0 +1,2991 @@
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! 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 file contains FORTRAN90 interfaces for H5LT functions
+!
+
+module H5LT
+use H5FORTRAN_TYPES
+use HDF5
+
+
+interface h5ltmake_dataset_f
+ module procedure h5ltmake_dataset_f_int1
+ module procedure h5ltmake_dataset_f_int2
+ module procedure h5ltmake_dataset_f_int3
+ module procedure h5ltmake_dataset_f_float1
+ module procedure h5ltmake_dataset_f_float2
+ module procedure h5ltmake_dataset_f_float3
+ module procedure h5ltmake_dataset_f_double1
+ module procedure h5ltmake_dataset_f_double2
+ module procedure h5ltmake_dataset_f_double3
+end interface
+
+interface h5ltread_dataset_f
+ module procedure h5ltread_dataset_f_int1
+ module procedure h5ltread_dataset_f_int2
+ module procedure h5ltread_dataset_f_int3
+ module procedure h5ltread_dataset_f_float1
+ module procedure h5ltread_dataset_f_float2
+ module procedure h5ltread_dataset_f_float3
+ module procedure h5ltread_dataset_f_double1
+ module procedure h5ltread_dataset_f_double2
+ module procedure h5ltread_dataset_f_double3
+end interface
+
+interface h5ltmake_dataset_int_f
+ module procedure h5ltmake_dataset_int_f_1
+ module procedure h5ltmake_dataset_int_f_2
+ module procedure h5ltmake_dataset_int_f_3
+end interface
+
+interface h5ltmake_dataset_float_f
+ module procedure h5ltmake_dataset_float_f_1
+ module procedure h5ltmake_dataset_float_f_2
+ module procedure h5ltmake_dataset_float_f_3
+end interface
+
+interface h5ltmake_dataset_double_f
+ module procedure h5ltmake_dataset_double_f_1
+ module procedure h5ltmake_dataset_double_f_2
+ module procedure h5ltmake_dataset_double_f_3
+end interface
+
+interface h5ltread_dataset_int_f
+ module procedure h5ltread_dataset_int_f_1
+ module procedure h5ltread_dataset_int_f_2
+ module procedure h5ltread_dataset_int_f_3
+end interface
+
+interface h5ltread_dataset_float_f
+ module procedure h5ltread_dataset_float_f_1
+ module procedure h5ltread_dataset_float_f_2
+ module procedure h5ltread_dataset_float_f_3
+end interface
+
+interface h5ltread_dataset_double_f
+ module procedure h5ltread_dataset_double_f_1
+ module procedure h5ltread_dataset_double_f_2
+ module procedure h5ltread_dataset_double_f_3
+end interface
+
+contains
+
+
+
+
+
+
+
+!-------------------------------------------------------------------------
+! Make/Read dataset functions
+!-------------------------------------------------------------------------
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_f_int1
+!
+! Purpose: Creates and writes a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 1, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_f_int1(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer, intent(IN), dimension(*) :: buf ! data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(IN), dimension(*) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+end subroutine h5ltmake_dataset_f_int1
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_f_int2
+!
+! Purpose: Creates and writes a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 1, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_f_int2(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+end subroutine h5ltmake_dataset_f_int2
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_f_int3
+!
+! Purpose: Creates and writes a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 1, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_f_int3(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+end subroutine h5ltmake_dataset_f_int3
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_f_float1
+!
+! Purpose: Creates and writes a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 1, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_f_float1(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ real, intent(IN), dimension(*) :: buf ! data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(IN), dimension(*) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+end subroutine h5ltmake_dataset_f_float1
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_f_float2
+!
+! Purpose: Creates and writes a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 1, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_f_float2(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ real, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+end subroutine h5ltmake_dataset_f_float2
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_f_float3
+!
+! Purpose: Creates and writes a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 1, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_f_float3(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ real, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+end subroutine h5ltmake_dataset_f_float3
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_f_double1
+!
+! Purpose: Creates and writes a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 1, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_f_double1(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ double precision, intent(IN), dimension(*) :: buf ! data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ double precision, intent(IN), dimension(*) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+end subroutine h5ltmake_dataset_f_double1
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_f_double2
+!
+! Purpose: Creates and writes a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 1, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_f_double2(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ double precision, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ double precision, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+end subroutine h5ltmake_dataset_f_double2
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_f_double3
+!
+! Purpose: Creates and writes a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 1, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_f_double3(loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ type_id,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ double precision, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ double precision, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+
+end subroutine h5ltmake_dataset_f_double3
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_f_int1
+!
+! Purpose: Read a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_f_int1(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(INOUT), dimension(*) :: buf ! data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(IN), dimension(*) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+end subroutine h5ltread_dataset_f_int1
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_f_int2
+!
+! Purpose: Read a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_f_int2(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer, intent(INOUT), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+end subroutine h5ltread_dataset_f_int2
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_f_int3
+!
+! Purpose: Read a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_f_int3(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer, intent(INOUT), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+end subroutine h5ltread_dataset_f_int3
+
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_f_float1
+!
+! Purpose: Read a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_f_float1(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(INOUT), dimension(*) :: buf ! data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(IN), dimension(*) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+end subroutine h5ltread_dataset_f_float1
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_f_float2
+!
+! Purpose: Read a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_f_float2(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ real, intent(INOUT), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+end subroutine h5ltread_dataset_f_float2
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_f_float3
+!
+! Purpose: Read a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_f_float3(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ real, intent(INOUT), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+end subroutine h5ltread_dataset_f_float3
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_f_double1
+!
+! Purpose: Read a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_f_double1(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ double precision, intent(INOUT), dimension(*) :: buf ! data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ double precision, intent(IN), dimension(*) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+end subroutine h5ltread_dataset_f_double1
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_f_double2
+!
+! Purpose: Read a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_f_double2(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ double precision, intent(INOUT), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ double precision, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+end subroutine h5ltread_dataset_f_double2
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_f_double3
+!
+! Purpose: Read a dataset of a type TYPE_ID
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_f_double3(loc_id,&
+ dset_name,&
+ type_id,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ double precision, intent(INOUT), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ double precision, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+
+end subroutine h5ltread_dataset_f_double3
+
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_int_f_1
+!
+! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_int_f_1 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(IN), dimension(*) :: buf ! data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(IN), dimension(*) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf)
+
+end subroutine h5ltmake_dataset_int_f_1
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_int_f_2
+!
+! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_int_f_2 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf)
+
+end subroutine h5ltmake_dataset_int_f_2
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_int_f_3
+!
+! Purpose: Creates and writes a dataset of H5T_NATIVE_INT type
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_int_f_3 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_INTEGER,buf)
+
+end subroutine h5ltmake_dataset_int_f_3
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_float_f_1
+!
+! Purpose: Creates and writes a dataset of H5T_NATIVE_FLOAT type
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_float_f_1 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(IN), dimension(*) :: buf ! data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(IN), dimension(*) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf)
+
+end subroutine h5ltmake_dataset_float_f_1
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_float_f_2
+!
+! Purpose: Creates and writes a dataset of H5T_NATIVE_FLOAT type
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_float_f_2 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ real, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf)
+
+end subroutine h5ltmake_dataset_float_f_2
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_float_f_3
+!
+! Purpose: Creates and writes a dataset of H5T_NATIVE_FLOAT type
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_float_f_3 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ real, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_REAL,buf)
+
+end subroutine h5ltmake_dataset_float_f_3
+
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_double_f_1
+!
+! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_double_f_1 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ double precision, intent(IN), &
+ dimension(dims(1)) :: buf ! data buffer
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ double precision, intent(IN), &
+ dimension(dims(1)) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf)
+
+end subroutine h5ltmake_dataset_double_f_1
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_double_f_2
+!
+! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_double_f_2 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ double precision, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ double precision, intent(IN), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf)
+
+end subroutine h5ltmake_dataset_double_f_2
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_double_f_3
+!
+! Purpose: Creates and writes a dataset of H5T_NATIVE_DOUBLE type
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_double_f_3 (loc_id,&
+ dset_name,&
+ rank,&
+ dims,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ double precision, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ interface
+ integer function h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_C'::h5ltmake_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(IN) :: rank ! rank
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ double precision, intent(IN), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ end function h5ltmake_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_c(loc_id,namelen,dset_name,rank,dims,H5T_NATIVE_DOUBLE,buf)
+
+end subroutine h5ltmake_dataset_double_f_3
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_int_f_1
+!
+! Purpose: Read a dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_int_f_1(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer, intent(INOUT), &
+ dimension(dims(1)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(INOUT), &
+ dimension(dims(1)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims)
+
+end subroutine h5ltread_dataset_int_f_1
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_int_f_2
+!
+! Purpose: Read a dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_int_f_2(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer, intent(INOUT), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(INOUT), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims)
+
+end subroutine h5ltread_dataset_int_f_2
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_int_f_3
+!
+! Purpose: Read a dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_int_f_3(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer, intent(INOUT), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer, intent(INOUT), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_INTEGER,buf,dims)
+
+end subroutine h5ltread_dataset_int_f_3
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_float_f_1
+!
+! Purpose: Read a dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_float_f_1(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ real, intent(INOUT), &
+ dimension(dims(1)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(INOUT), &
+ dimension(dims(1)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims)
+
+end subroutine h5ltread_dataset_float_f_1
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_float_f_2
+!
+! Purpose: Read a dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_float_f_2(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ real, intent(INOUT), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(INOUT), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims)
+
+end subroutine h5ltread_dataset_float_f_2
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_float_f_3
+!
+! Purpose: Read a dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_float_f_3(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ real, intent(INOUT), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ real, intent(INOUT), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_REAL,buf,dims)
+
+end subroutine h5ltread_dataset_float_f_3
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_double_f_1
+!
+! Purpose: Read a dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_double_f_1(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ double precision, intent(INOUT), &
+ dimension(dims(1)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ double precision, intent(INOUT), &
+ dimension(dims(1)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims)
+
+end subroutine h5ltread_dataset_double_f_1
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_double_f_2
+!
+! Purpose: Read a dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_double_f_2(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ double precision, intent(INOUT), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ double precision, intent(INOUT), &
+ dimension(dims(1),dims(2)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims)
+
+end subroutine h5ltread_dataset_double_f_2
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_double_f_3
+!
+! Purpose: Read a dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_double_f_3(loc_id,&
+ dset_name,&
+ buf,&
+ dims,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ double precision, intent(INOUT), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+
+ interface
+ integer function h5ltread_dataset_c(loc_id,namelen,dset_name,type_id,buf,dims)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_C'::h5ltread_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer(HID_T), intent(IN) :: type_id ! datatype identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T), dimension(*), intent(IN) :: dims ! size of the bufffer buf
+ double precision, intent(INOUT), &
+ dimension(dims(1),dims(2),dims(3)) :: buf ! data buffer
+ end function h5ltread_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_c(loc_id,namelen,dset_name,H5T_NATIVE_DOUBLE,buf,dims)
+
+end subroutine h5ltread_dataset_double_f_3
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltmake_dataset_string_f
+!
+! Purpose: Creates and writes a dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltmake_dataset_string_f(loc_id,&
+ dset_name,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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) :: buf ! data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5ltmake_dataset_string_c(loc_id,namelen,dset_name,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTMAKE_DATASET_STRING_C'::h5ltmake_dataset_string_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ character(LEN=*), intent(IN) :: buf ! data buffer
+ end function h5ltmake_dataset_string_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltmake_dataset_string_c(loc_id,namelen,dset_name,buf)
+
+end subroutine h5ltmake_dataset_string_f
+
+!-------------------------------------------------------------------------
+! Function: h5ltread_dataset_string_f
+!
+! Purpose: Read a dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 22, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltread_dataset_string_f(loc_id,&
+ dset_name,&
+ buf,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ character(LEN=*), intent(INOUT) :: buf ! data buffer
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5ltread_dataset_string_c(loc_id,namelen,dset_name,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTREAD_DATASET_STRING_C'::h5ltread_dataset_string_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ character(LEN=*), intent(INOUT) :: buf ! data buffer
+ end function h5ltread_dataset_string_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltread_dataset_string_c(loc_id,namelen,dset_name,buf)
+
+end subroutine h5ltread_dataset_string_f
+
+
+
+
+!-------------------------------------------------------------------------
+! Make/Read attribute functions
+!-------------------------------------------------------------------------
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltset_attribute_int_f
+!
+! Purpose: Create and write an attribute
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltset_attribute_int_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ size,&
+ errcode )
+
+ implicit none
+ 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) :: attr_name ! name of the attribute
+ integer(SIZE_T), intent(IN) :: size ! size of attribute array
+ integer :: errcode ! error code
+ integer, intent(IN), dimension(*) :: buf ! data buffer
+ integer :: namelen ! name length
+ integer :: attrlen ! name length
+
+ interface
+ integer function h5ltset_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTSET_ATTRIBUTE_INT_C'::h5ltset_attribute_int_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ integer :: attrlen ! lenght of attr name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ character(LEN=*), intent(IN) :: attr_name ! name of the attribute
+ integer(SIZE_T), intent(IN) :: size ! size of attribute array
+ integer, intent(IN), dimension(*) :: buf ! data buffer
+ end function h5ltset_attribute_int_c
+ end interface
+
+ namelen = len(dset_name)
+ attrlen = len(attr_name)
+ errcode = h5ltset_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
+
+end subroutine h5ltset_attribute_int_f
+
+!-------------------------------------------------------------------------
+! Function: h5ltset_attribute_float_f
+!
+! Purpose: Create and write an attribute
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltset_attribute_float_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ size,&
+ errcode )
+
+ implicit none
+ 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) :: attr_name ! name of the attribute
+ integer(SIZE_T), intent(IN) :: size ! size of attribute array
+ integer :: errcode ! error code
+ real, intent(IN), dimension(*) :: buf ! data buffer
+ integer :: namelen ! name length
+ integer :: attrlen ! name length
+
+ interface
+ integer function h5ltset_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTSET_ATTRIBUTE_FLOAT_C'::h5ltset_attribute_float_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ integer :: attrlen ! lenght of attr name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ character(LEN=*), intent(IN) :: attr_name ! name of the attribute
+ integer(SIZE_T), intent(IN) :: size ! size of attribute array
+ real, intent(IN), dimension(*) :: buf ! data buffer
+ end function h5ltset_attribute_float_c
+ end interface
+
+ namelen = len(dset_name)
+ attrlen = len(attr_name)
+ errcode = h5ltset_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
+
+end subroutine h5ltset_attribute_float_f
+
+!-------------------------------------------------------------------------
+! Function: h5ltset_attribute_double_f
+!
+! Purpose: Create and write an attribute
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltset_attribute_double_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ size,&
+ errcode )
+
+ implicit none
+ 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) :: attr_name ! name of the attribute
+ integer(SIZE_T), intent(IN) :: size ! size of attribute array
+ integer :: errcode ! error code
+ double precision, intent(IN), dimension(*) :: buf ! data buffer
+ integer :: namelen ! name length
+ integer :: attrlen ! name length
+
+ interface
+ integer function h5ltset_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTSET_ATTRIBUTE_DOUBLE_C'::h5ltset_attribute_double_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ integer :: attrlen ! lenght of attr name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ character(LEN=*), intent(IN) :: attr_name ! name of the attribute
+ integer(SIZE_T), intent(IN) :: size ! size of attribute array
+ double precision, intent(IN), dimension(*) :: buf ! data buffer
+ end function h5ltset_attribute_double_c
+ end interface
+
+ namelen = len(dset_name)
+ attrlen = len(attr_name)
+ errcode = h5ltset_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
+
+end subroutine h5ltset_attribute_double_f
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltset_attribute_string_f
+!
+! Purpose: Create and write an attribute
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltset_attribute_string_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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) :: attr_name ! name of the attribute
+ integer :: errcode ! error code
+ character(LEN=*), intent(IN) :: buf ! data buffer
+ integer :: namelen ! name length
+ integer :: attrlen ! name length
+
+ interface
+ integer function h5ltset_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTSET_ATTRIBUTE_STRING_C'::h5ltset_attribute_string_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ integer :: attrlen ! lenght of attr name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ character(LEN=*), intent(IN) :: attr_name ! name of the attribute
+ character(LEN=*), intent(IN) :: buf ! data buffer
+ end function h5ltset_attribute_string_c
+ end interface
+
+ namelen = len(dset_name)
+ attrlen = len(attr_name)
+ errcode = h5ltset_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+
+end subroutine h5ltset_attribute_string_f
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltget_attribute_int_f
+!
+! Purpose: Reads an attribute named ATTR_NAME
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltget_attribute_int_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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) :: attr_name ! name of the attribute
+ integer :: errcode ! error code
+ integer, intent(INOUT), dimension(*) :: buf ! data buffer
+ integer :: namelen ! name length
+ integer :: attrlen ! name length
+
+ interface
+ integer function h5ltget_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTGET_ATTRIBUTE_INT_C'::h5ltget_attribute_int_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ integer :: attrlen ! lenght of attr name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ character(LEN=*), intent(IN) :: attr_name ! name of the attribute
+ integer, intent(INOUT), dimension(*) :: buf ! data buffer
+ end function h5ltget_attribute_int_c
+ end interface
+
+ namelen = len(dset_name)
+ attrlen = len(attr_name)
+ errcode = h5ltget_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+
+end subroutine h5ltget_attribute_int_f
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltget_attribute_float_f
+!
+! Purpose: Reads an attribute named ATTR_NAME
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltget_attribute_float_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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) :: attr_name ! name of the attribute
+ integer :: errcode ! error code
+ real, intent(INOUT), dimension(*) :: buf ! data buffer
+ integer :: namelen ! name length
+ integer :: attrlen ! name length
+
+ interface
+ integer function h5ltget_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTGET_ATTRIBUTE_FLOAT_C'::h5ltget_attribute_float_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ integer :: attrlen ! lenght of attr name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ character(LEN=*), intent(IN) :: attr_name ! name of the attribute
+ real, intent(INOUT), dimension(*) :: buf ! data buffer
+ end function h5ltget_attribute_float_c
+ end interface
+
+ namelen = len(dset_name)
+ attrlen = len(attr_name)
+ errcode = h5ltget_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+
+end subroutine h5ltget_attribute_float_f
+
+!-------------------------------------------------------------------------
+! Function: h5ltget_attribute_double_f
+!
+! Purpose: Reads an attribute named ATTR_NAME
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltget_attribute_double_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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) :: attr_name ! name of the attribute
+ integer :: errcode ! error code
+ double precision,intent(INOUT),dimension(*) :: buf ! data buffer
+ integer :: namelen ! name length
+ integer :: attrlen ! name length
+
+ interface
+ integer function h5ltget_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTGET_ATTRIBUTE_DOUBLE_C'::h5ltget_attribute_double_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ integer :: attrlen ! lenght of attr name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ character(LEN=*), intent(IN) :: attr_name ! name of the attribute
+ double precision, intent(INOUT), dimension(*) :: buf ! data buffer
+ end function h5ltget_attribute_double_c
+ end interface
+
+ namelen = len(dset_name)
+ attrlen = len(attr_name)
+ errcode = h5ltget_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+
+end subroutine h5ltget_attribute_double_f
+
+!-------------------------------------------------------------------------
+! Function: h5ltget_attribute_string_f
+!
+! Purpose: Reads an attribute named ATTR_NAME
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltget_attribute_string_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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) :: attr_name ! name of the attribute
+ integer :: errcode ! error code
+ character(LEN=*), intent(INOUT) :: buf ! data buffer
+ integer :: namelen ! name length
+ integer :: attrlen ! name length
+
+ interface
+ integer function h5ltget_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTGET_ATTRIBUTE_STRING_C'::h5ltget_attribute_string_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ integer :: attrlen ! lenght of attr name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ character(LEN=*), intent(IN) :: attr_name ! name of the attribute
+ character(LEN=*), intent(INOUT) :: buf ! data buffer
+ end function h5ltget_attribute_string_c
+ end interface
+
+ namelen = len(dset_name)
+ attrlen = len(attr_name)
+ errcode = h5ltget_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
+
+end subroutine h5ltget_attribute_string_f
+
+
+
+
+
+!-------------------------------------------------------------------------
+! Query dataset functions
+!-------------------------------------------------------------------------
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltget_dataset_ndims_f
+!
+! Purpose: Gets the dimensionality of a dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 30, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltget_dataset_ndims_f(loc_id,&
+ dset_name,&
+ rank,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(INOUT) :: rank ! rank
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5ltget_dataset_ndims_c(loc_id,namelen,dset_name,rank)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTGET_DATASET_NDIMS_C'::h5ltget_dataset_ndims_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer, intent(INOUT) :: rank ! rank
+ end function h5ltget_dataset_ndims_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltget_dataset_ndims_c(loc_id,namelen,dset_name,rank)
+
+end subroutine h5ltget_dataset_ndims_f
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltfind_dataset_f
+!
+! Purpose: Inquires if a dataset named dset_name exists attached
+! to the object loc_id.
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+integer function h5ltfind_dataset_f(loc_id,&
+ dset_name)
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5ltfind_dataset_c(loc_id,namelen,dset_name)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTFIND_DATASET_C'::h5ltfind_dataset_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ end function h5ltfind_dataset_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltfind_dataset_c(loc_id,namelen,dset_name)
+ h5ltfind_dataset_f = errcode
+
+end function h5ltfind_dataset_f
+
+!-------------------------------------------------------------------------
+! Function: h5ltget_dataset_info_f
+!
+! Purpose: Gets information about a dataset
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 30, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltget_dataset_info_f(loc_id,&
+ dset_name,&
+ dims,&
+ type_class,&
+ type_size,&
+ errcode )
+
+ implicit none
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T),dimension(*),intent(INOUT):: dims ! dimensions
+ integer, intent(INOUT) :: type_class ! type class
+ integer(SIZE_T), intent(INOUT) :: type_size ! type size
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+
+ interface
+ integer function h5ltget_dataset_info_c(loc_id,namelen,dset_name,dims,type_class,type_size)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTGET_DATASET_INFO_C'::h5ltget_dataset_info_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ integer(HSIZE_T),dimension(*),intent(INOUT):: dims ! dimensions
+ integer, intent(INOUT) :: type_class ! type class
+ integer(SIZE_T), intent(INOUT) :: type_size ! type size
+ end function h5ltget_dataset_info_c
+ end interface
+
+ namelen = len(dset_name)
+ errcode = h5ltget_dataset_info_c(loc_id,namelen,dset_name,dims,type_class,type_size)
+
+end subroutine h5ltget_dataset_info_f
+
+
+!-------------------------------------------------------------------------
+! Query attribute functions
+!-------------------------------------------------------------------------
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltget_attribute_ndims_f
+!
+! Purpose: Create and write an attribute
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 05, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltget_attribute_ndims_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ rank,&
+ errcode )
+
+ implicit none
+ 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) :: attr_name ! name of the attribute
+ integer, intent(INOUT) :: rank ! rank
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer :: attrlen ! name length
+
+ interface
+ integer function h5ltget_attribute_ndims_c(loc_id,namelen,dset_name,attrlen,attr_name,rank)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTGET_ATTRIBUTE_NDIMS_C'::h5ltget_attribute_ndims_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ integer :: attrlen ! lenght of attr name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ character(LEN=*), intent(IN) :: attr_name ! name of the attribute
+ integer, intent(INOUT) :: rank ! rank
+ end function h5ltget_attribute_ndims_c
+ end interface
+
+ namelen = len(dset_name)
+ attrlen = len(attr_name)
+ errcode = h5ltget_attribute_ndims_c(loc_id,namelen,dset_name,attrlen,attr_name,rank)
+
+end subroutine h5ltget_attribute_ndims_f
+
+
+!-------------------------------------------------------------------------
+! Function: h5ltget_attribute_info_f
+!
+! Purpose: Gets information about an attribute
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: September 30, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5ltget_attribute_info_f(loc_id,&
+ dset_name,&
+ attr_name,&
+ dims,&
+ type_class,&
+ type_size,&
+ errcode )
+
+ implicit none
+ 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) :: attr_name ! name of the attribute
+ integer(HSIZE_T),dimension(*),intent(INOUT):: dims ! dimensions
+ integer, intent(INOUT) :: type_class ! type class
+ integer(SIZE_T), intent(INOUT) :: type_size ! type size
+ integer :: errcode ! error code
+ integer :: namelen ! name length
+ integer :: attrlen ! name length
+
+ interface
+ integer function h5ltget_attribute_info_c(loc_id,namelen,dset_name,attrlen,attr_name,dims,type_class,type_size)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5LTGET_ATTRIBUTE_INFO_C'::h5ltget_attribute_info_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: dset_name
+ !DEC$ATTRIBUTES reference :: attr_name
+ integer(HID_T), intent(IN) :: loc_id ! file or group identifier
+ integer :: namelen ! lenght of name buffer
+ integer :: attrlen ! lenght of attr name buffer
+ character(LEN=*), intent(IN) :: dset_name ! name of the dataset
+ character(LEN=*), intent(IN) :: attr_name ! name of the attribute
+ integer(HSIZE_T),dimension(*),intent(INOUT):: dims ! dimensions
+ integer, intent(INOUT) :: type_class ! type class
+ integer(SIZE_T), intent(INOUT) :: type_size ! type size
+ end function h5ltget_attribute_info_c
+ end interface
+
+ namelen = len(dset_name)
+ attrlen = len(attr_name)
+ errcode = h5ltget_attribute_info_c(loc_id,namelen,dset_name,attrlen,attr_name,dims,type_class,type_size)
+
+end subroutine h5ltget_attribute_info_f
+
+
+
+! end
+!
+end module H5LT
+
+
+
+
+
+
diff --git a/hl/fortran/src/H5TBfc.c b/hl/fortran/src/H5TBfc.c
new file mode 100755
index 0000000..68bade4
--- /dev/null
+++ b/hl/fortran/src/H5TBfc.c
@@ -0,0 +1,715 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * 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 "H5TA.h"
+#include "H5LTf90proto.h"
+#include <stdlib.h>
+
+/*-------------------------------------------------------------------------
+ * Function: h5tbmake_table_c
+ *
+ * Purpose: Call H5TBmake_table
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 06, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+int_f
+nh5tbmake_table_c(int_f *namelen1,
+ _fcd name1,
+ hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *nfields,
+ hsize_t_f *nrecords,
+ size_t_f *type_size,
+ size_t_f *field_offset,
+ hid_t_f *field_types,
+ hsize_t_f *chunk_size,
+ int_f *compress,
+ int_f *namelen2, /* field_names lenghts */
+ _fcd field_names) /* field_names */
+{
+ int ret_value = -1;
+ herr_t ret;
+ char *c_name;
+ int c_namelen;
+ char *c_name1;
+ int c_namelen1;
+ hsize_t num_elem;
+ int i;
+ int max_len=1;
+ hid_t c_loc_id = *loc_id;
+ hsize_t c_nfields = *nfields;
+ hsize_t c_nrecords = *nrecords;
+ hsize_t c_chunk_size = *chunk_size;
+ int c_compress = *compress;
+ size_t c_type_size = *type_size;
+ size_t *c_field_offset;
+ hid_t *c_field_types;
+ char **c_field_names;
+ char *tmp, *tmp_p;
+
+ num_elem = *nfields;
+
+ for (i=0; i < num_elem; i++) {
+ if (namelen2[i] > max_len) max_len = namelen2[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_namelen1 = *namelen1;
+ c_name1 = (char *)HD5f2cstring(name1, c_namelen1);
+ if (c_name1 == NULL) return ret_value;
+
+ c_field_offset = (size_t*)malloc(sizeof(size_t) * (size_t)c_nfields);
+ if (!c_field_offset) return ret_value;
+
+ c_field_types = (hid_t*)malloc(sizeof(hid_t) * (size_t)c_nfields);
+ if (!c_field_types) return ret_value;
+
+ for (i=0; i < num_elem; i++) {
+ c_field_offset[i] = field_offset[i];
+ c_field_types[i] = field_types[i];
+ }
+
+/*
+ * Allocate array of character pointers
+ */
+ c_field_names = (char **)malloc((size_t)num_elem * sizeof(char *));
+ if (c_field_names == NULL) return ret_value;
+
+ /* Copy data to long C string */
+ tmp = (char *)HD5f2cstring(field_names, (int)(max_len*num_elem));
+ if (tmp == NULL) {
+ free(c_field_names);
+ return ret_value;
+ }
+
+/*
+ * Move data from temorary buffer
+ */
+ tmp_p = tmp;
+ for (i=0; i < num_elem; i++) {
+ c_field_names[i] = (char *) malloc((size_t)namelen2[i]+1);
+ memcpy(c_field_names[i], tmp_p, (size_t)namelen2[i]);
+ c_field_names[i][namelen2[i]] = '\0';
+ tmp_p = tmp_p + max_len;
+ }
+
+/*
+ * Call H5TBmake_table function.
+ */
+
+ ret = H5TBmake_table(c_name1,c_loc_id,c_name,c_nfields,c_nrecords,c_type_size,
+ c_field_names,c_field_offset,c_field_types,c_chunk_size,NULL,*compress,NULL);
+
+ for (i=0; i < num_elem; i++) {
+ free (c_field_names[i]);
+ }
+ free(c_field_names);
+ free(tmp);
+ free(c_field_offset);
+ free(c_field_types);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5tbwrite_field_name_c
+ *
+ * Purpose: Call H5TBwrite_fields_name
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 12, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5tbwrite_field_name_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *namelen1,
+ _fcd field_name,
+ hsize_t_f *start,
+ hsize_t_f *nrecords,
+ size_t_f *type_size,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ char *c_name;
+ int c_namelen;
+ char *c_name1;
+ int c_namelen1;
+ hid_t c_loc_id = *loc_id;
+ hsize_t c_start = *start;
+ hsize_t c_nrecords = *nrecords;
+ size_t c_type_size = *type_size;
+ size_t c_type_sizes[1];
+
+ c_type_sizes[0] = c_type_size;
+
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_namelen1 = *namelen1;
+ c_name1 = (char *)HD5f2cstring(field_name, c_namelen1);
+ if (c_name1 == NULL) return ret_value;
+
+/*
+ * Call H5TBwrite_fields_name function.
+ */
+
+ ret = H5TBwrite_fields_name(c_loc_id,c_name,c_name1,c_start,c_nrecords,c_type_size,
+ 0,c_type_sizes,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5tbread_field_name_c
+ *
+ * Purpose: Call H5TBread_fields_name
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 12, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5tbread_field_name_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *namelen1,
+ _fcd field_name,
+ hsize_t_f *start,
+ hsize_t_f *nrecords,
+ size_t_f *type_size,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ char *c_name;
+ int c_namelen;
+ char *c_name1;
+ int c_namelen1;
+ hid_t c_loc_id = *loc_id;
+ hsize_t c_start = *start;
+ hsize_t c_nrecords = *nrecords;
+ size_t c_type_size = *type_size;
+ size_t c_type_sizes[1];
+
+ c_type_sizes[0] = c_type_size;
+
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_namelen1 = *namelen1;
+ c_name1 = (char *)HD5f2cstring(field_name, c_namelen1);
+ if (c_name1 == NULL) return ret_value;
+
+/*
+ * Call H5TBread_fields_name function.
+ */
+
+ ret = H5TBread_fields_name(c_loc_id,c_name,c_name1,c_start,c_nrecords,c_type_size,
+ 0,c_type_sizes,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5tbwrite_field_index_c
+ *
+ * Purpose: Call H5TBwrite_fields_index
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 12, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5tbwrite_field_index_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *field_index,
+ hsize_t_f *start,
+ hsize_t_f *nrecords,
+ size_t_f *type_size,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ char *c_name;
+ int c_namelen;
+ hid_t c_loc_id = *loc_id;
+ hsize_t c_start = *start;
+ hsize_t c_nrecords = *nrecords;
+ size_t c_type_size = *type_size;
+ size_t c_type_sizes[1];
+ int c_field_index[1];
+
+ c_type_sizes[0] = c_type_size;
+ c_field_index[0] = *field_index - 1; /* C zero based index */
+
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+
+/*
+ * Call H5TBwrite_fields_name function.
+ */
+
+ ret = H5TBwrite_fields_index(c_loc_id,c_name,1,c_field_index,c_start,c_nrecords,c_type_size,
+ 0,c_type_sizes,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5tbread_field_index_c
+ *
+ * Purpose: Call H5TBread_fields_index
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 12, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5tbread_field_index_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *field_index,
+ hsize_t_f *start,
+ hsize_t_f *nrecords,
+ size_t_f *type_size,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ char *c_name;
+ int c_namelen;
+ hid_t c_loc_id = *loc_id;
+ hsize_t c_start = *start;
+ hsize_t c_nrecords = *nrecords;
+ size_t c_type_size = *type_size;
+ size_t c_type_sizes[1];
+ int c_field_index[1];
+
+ c_type_sizes[0] = c_type_size;
+ c_field_index[0] = *field_index - 1; /* C zero based index */
+
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+/*
+ * Call H5TBread_fields_index function.
+ */
+
+ ret = H5TBread_fields_index(c_loc_id,c_name,1,c_field_index,c_start,c_nrecords,c_type_size,
+ 0,c_type_sizes,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5tbinsert_field_c
+ *
+ * Purpose: Call H5TBinsert_field
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 13, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5tbinsert_field_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *namelen1,
+ _fcd field_name,
+ hid_t_f *field_type,
+ int_f *position,
+ void *buf)
+{
+ int ret_value = -1;
+ herr_t ret;
+ char *c_name;
+ int c_namelen;
+ char *c_name1;
+ int c_namelen1;
+ hid_t c_loc_id = *loc_id;
+ hid_t c_field_type = *field_type;
+ hsize_t c_position = *position;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_namelen1 = *namelen1;
+ c_name1 = (char *)HD5f2cstring(field_name, c_namelen1);
+ if (c_name1 == NULL) return ret_value;
+
+/*
+ * Call H5TBinsert_field function.
+ */
+
+ ret = H5TBinsert_field(c_loc_id,c_name,c_name1,c_field_type,c_position,NULL,buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5tbdelete_field_c
+ *
+ * Purpose: Call H5TBdelete_field
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 13, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5tbdelete_field_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ int_f *namelen1,
+ _fcd field_name)
+{
+ int ret_value = -1;
+ herr_t ret;
+ char *c_name;
+ int c_namelen;
+ char *c_name1;
+ int c_namelen1;
+ hid_t c_loc_id = *loc_id;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_namelen1 = *namelen1;
+ c_name1 = (char *)HD5f2cstring(field_name, c_namelen1);
+ if (c_name1 == NULL) return ret_value;
+
+/*
+ * Call H5TBinsert_field function.
+ */
+
+ ret = H5TBdelete_field(c_loc_id,c_name,c_name1);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5tbget_table_info_c
+ *
+ * Purpose: Call H5TBread_fields_index
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 12, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+
+int_f
+nh5tbget_table_info_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *nfields,
+ hsize_t_f *nrecords)
+{
+ int ret_value = -1;
+ herr_t ret;
+ char *c_name;
+ int c_namelen;
+ hid_t c_loc_id = *loc_id;
+ hsize_t c_nfields;
+ hsize_t c_nrecords;
+
+/*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+/*
+ * Call H5TBread_fields_index function.
+ */
+
+ ret = H5TBget_table_info(c_loc_id,c_name,&c_nfields,&c_nrecords);
+
+ *nfields = (hsize_t_f) c_nfields;;
+ *nrecords = (hsize_t_f) c_nrecords;
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+
+
+/*-------------------------------------------------------------------------
+ * Function: h5tbget_field_info_c
+ *
+ * Purpose: Call H5TBget_field_info
+ *
+ * Return: Success: 0, Failure: -1
+ *
+ * Programmer: pvn@ncsa.uiuc.edu
+ *
+ * Date: October 13, 2004
+ *
+ * Comments:
+ *
+ * Modifications:
+ *
+ *
+ *-------------------------------------------------------------------------
+ */
+int_f
+nh5tbget_field_info_c(hid_t_f *loc_id,
+ int_f *namelen,
+ _fcd name,
+ hsize_t_f *nfields,
+ size_t_f *field_sizes,
+ size_t_f *field_offsets,
+ size_t_f *type_size,
+ int_f *namelen2, /* field_names lenghts */
+ _fcd field_names) /* field_names */
+
+{
+ int ret_value = -1;
+ herr_t ret;
+ char *c_name;
+ int c_namelen;
+ hsize_t num_elem;
+ int i;
+ int max_len=1;
+ hid_t c_loc_id = *loc_id;
+ hsize_t c_nfields = *nfields;
+ size_t *c_field_sizes;
+ size_t *c_field_offsets;
+ size_t c_type_size;
+ char **c_field_names;
+ char *tmp, *tmp_p;
+ int c_lenmax=HLTB_MAX_FIELD_LEN;
+ size_t length = 0;
+
+ num_elem = c_nfields;
+
+ for (i=0; i < num_elem; i++) {
+ if (namelen2[i] > max_len) max_len = namelen2[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_field_offsets = (size_t*)malloc(sizeof(size_t) * (size_t)c_nfields);
+ if (!c_field_offsets) return ret_value;
+
+ c_field_sizes = (size_t*)malloc(sizeof(size_t) * (size_t)c_nfields);
+ if (!c_field_sizes) return ret_value;
+
+ c_field_names = malloc( sizeof(char*) * (size_t)c_nfields );
+ if (!c_field_names) return ret_value;
+ for ( i = 0; i < c_nfields; i++)
+ {
+ c_field_names[i] = malloc( sizeof(char) * HLTB_MAX_FIELD_LEN );
+ }
+
+/*
+ * Call H5TBget_field_info function.
+ */
+
+ ret = H5TBget_field_info(c_loc_id,c_name,c_field_names,c_field_sizes,c_field_offsets,
+ &c_type_size);
+
+ /* return values*/
+
+ /* names array */
+ tmp = (char *)malloc(c_lenmax* (hsize_t_f) c_nfields + 1);
+ tmp_p = tmp;
+ memset(tmp,' ', c_lenmax* (hsize_t_f) c_nfields);
+ tmp[c_lenmax*c_nfields] = '\0';
+ for (i=0; i < c_nfields; i++) {
+ memcpy(tmp_p, c_field_names[i], strlen(c_field_names[i]));
+ namelen2[i] = (int_f)strlen(c_field_names[i]);
+ length = MAX(length, strlen(c_field_names[i]));
+ tmp_p = tmp_p + c_lenmax;
+ }
+ HD5packFstring(tmp, _fcdtocp(field_names), (int)(c_lenmax*c_nfields));
+
+
+ *type_size = c_type_size;
+ for (i=0; i < num_elem; i++)
+ {
+ field_sizes[i] = c_field_sizes[i];
+ field_offsets[i] = c_field_offsets[i];
+ }
+
+
+
+ /* free */
+
+ for (i=0; i < num_elem; i++) {
+ free (c_field_names[i]);
+ }
+ free(c_field_names);
+ free(tmp);
+ free(c_field_offsets);
+ free(c_field_sizes);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
diff --git a/hl/fortran/src/H5TBff.f90 b/hl/fortran/src/H5TBff.f90
new file mode 100755
index 0000000..4d91aee
--- /dev/null
+++ b/hl/fortran/src/H5TBff.f90
@@ -0,0 +1,1684 @@
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! 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 file contains FORTRAN90 interfaces for H5TB functions
+!
+
+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
+
+
+
+
+
+contains
+
+
+!-------------------------------------------------------------------------
+! Function: h5tbmake_table_f
+!
+! Purpose: Make a table
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 06, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+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
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ integer :: errcode ! error code
+ integer, dimension(nfields) :: namelen2 ! name lengths
+ integer :: 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,&
+ namelen2,&
+ field_names)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ integer, dimension(nfields) :: namelen2 ! name lengths
+ end function h5tbmake_table_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(table_title)
+ do i = 1, nfields
+ namelen2(i) = len(field_names(i));
+ end do
+
+ errcode = h5tbmake_table_c(namelen1,&
+ table_title,&
+ loc_id,&
+ namelen,&
+ dset_name,&
+ nfields,&
+ nrecords,&
+ type_size,&
+ field_offset,&
+ field_types,&
+ chunk_size,&
+ compress,&
+ namelen2,&
+ field_names)
+
+end subroutine h5tbmake_table_f
+
+
+!-------------------------------------------------------------------------
+! Function: h5tbwrite_field_name_f_int
+!
+! Purpose: Writes one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbwrite_field_name_f_int(loc_id,&
+ dset_name,&
+ field_name,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+
+ interface
+ integer function h5tbwrite_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBWRITE_FIELD_NAME_C'::h5tbwrite_field_name_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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ end function h5tbwrite_field_name_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(field_name)
+
+ errcode = h5tbwrite_field_name_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
+!
+! Purpose: Writes one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbwrite_field_name_f_float(loc_id,&
+ dset_name,&
+ field_name,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+
+ interface
+ integer function h5tbwrite_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBWRITE_FIELD_NAME_C'::h5tbwrite_field_name_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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ end function h5tbwrite_field_name_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(field_name)
+
+ errcode = h5tbwrite_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+end subroutine h5tbwrite_field_name_f_float
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5tbwrite_field_name_f_double
+!
+! Purpose: Writes one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbwrite_field_name_f_double(loc_id,&
+ dset_name,&
+ field_name,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+
+ interface
+ integer function h5tbwrite_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBWRITE_FIELD_NAME_C'::h5tbwrite_field_name_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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ end function h5tbwrite_field_name_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(field_name)
+
+ errcode = h5tbwrite_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+end subroutine h5tbwrite_field_name_f_double
+
+!-------------------------------------------------------------------------
+! Function: h5tbwrite_field_name_f_string
+!
+! Purpose: Writes one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbwrite_field_name_f_string(loc_id,&
+ dset_name,&
+ field_name,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+
+ interface
+ integer function h5tbwrite_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBWRITE_FIELD_NAME_C'::h5tbwrite_field_name_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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ end function h5tbwrite_field_name_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(field_name)
+
+ errcode = h5tbwrite_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+end subroutine h5tbwrite_field_name_f_string
+
+
+!-------------------------------------------------------------------------
+! Function: h5tbread_field_name_f_int
+!
+! Purpose: Reads one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbread_field_name_f_int(loc_id,&
+ dset_name,&
+ field_name,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+
+ interface
+ integer function h5tbread_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBREAD_FIELD_NAME_C'::h5tbread_field_name_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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ end function h5tbread_field_name_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(field_name)
+
+ errcode = h5tbread_field_name_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
+!
+! Purpose: Reads one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbread_field_name_f_float(loc_id,&
+ dset_name,&
+ field_name,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+
+ interface
+ integer function h5tbread_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBREAD_FIELD_NAME_C'::h5tbread_field_name_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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ end function h5tbread_field_name_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(field_name)
+
+ errcode = h5tbread_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+end subroutine h5tbread_field_name_f_float
+
+!-------------------------------------------------------------------------
+! Function: h5tbread_field_name_f_double
+!
+! Purpose: Reads one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbread_field_name_f_double(loc_id,&
+ dset_name,&
+ field_name,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+
+ interface
+ integer function h5tbread_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBREAD_FIELD_NAME_C'::h5tbread_field_name_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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ end function h5tbread_field_name_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(field_name)
+
+ errcode = h5tbread_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+end subroutine h5tbread_field_name_f_double
+
+!-------------------------------------------------------------------------
+! Function: h5tbread_field_name_f_string
+!
+! Purpose: Reads one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbread_field_name_f_string(loc_id,&
+ dset_name,&
+ field_name,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+
+ interface
+ integer function h5tbread_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBREAD_FIELD_NAME_C'::h5tbread_field_name_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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ end function h5tbread_field_name_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(field_name)
+
+ errcode = h5tbread_field_name_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ start,nrecords,type_size,buf)
+
+end subroutine h5tbread_field_name_f_string
+
+
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5tbwrite_field_index_f_int
+!
+! Purpose: Writes one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbwrite_field_index_f_int(loc_id,&
+ dset_name,&
+ field_index,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+
+ interface
+ integer function h5tbwrite_field_index_c(loc_id,namelen,dset_name,field_index,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBWRITE_FIELD_INDEX_C'::h5tbwrite_field_index_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 :: namelen ! name length
+ end function h5tbwrite_field_index_c
+ end interface
+
+ namelen = len(dset_name)
+
+ errcode = h5tbwrite_field_index_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
+!
+! Purpose: Writes one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbwrite_field_index_f_float(loc_id,&
+ dset_name,&
+ field_index,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+
+ interface
+ integer function h5tbwrite_field_index_c(loc_id,namelen,dset_name,field_index,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBWRITE_FIELD_INDEX_C'::h5tbwrite_field_index_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 :: namelen ! name length
+ end function h5tbwrite_field_index_c
+ end interface
+
+ namelen = len(dset_name)
+
+ errcode = h5tbwrite_field_index_c(loc_id,namelen,dset_name,field_index,&
+ start,nrecords,type_size,buf)
+
+end subroutine h5tbwrite_field_index_f_float
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5tbwrite_field_index_f_double
+!
+! Purpose: Writes one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbwrite_field_index_f_double(loc_id,&
+ dset_name,&
+ field_index,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+
+ interface
+ integer function h5tbwrite_field_index_c(loc_id,namelen,dset_name,field_index,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBWRITE_FIELD_INDEX_C'::h5tbwrite_field_index_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 :: namelen ! name length
+ end function h5tbwrite_field_index_c
+ end interface
+
+ namelen = len(dset_name)
+
+ errcode = h5tbwrite_field_index_c(loc_id,namelen,dset_name,field_index,&
+ start,nrecords,type_size,buf)
+
+end subroutine h5tbwrite_field_index_f_double
+
+!-------------------------------------------------------------------------
+! Function: h5tbwrite_field_index_f_string
+!
+! Purpose: Writes one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbwrite_field_index_f_string(loc_id,&
+ dset_name,&
+ field_index,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+
+ interface
+ integer function h5tbwrite_field_index_c(loc_id,namelen,dset_name,field_index,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBWRITE_FIELD_INDEX_C'::h5tbwrite_field_index_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 :: namelen ! name length
+ end function h5tbwrite_field_index_c
+ end interface
+
+ namelen = len(dset_name)
+
+ errcode = h5tbwrite_field_index_c(loc_id,namelen,dset_name,field_index,&
+ start,nrecords,type_size,buf)
+
+end subroutine h5tbwrite_field_index_f_string
+
+
+!-------------------------------------------------------------------------
+! Function: h5tbread_field_index_f_int
+!
+! Purpose: Reads one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbread_field_index_f_int(loc_id,&
+ dset_name,&
+ field_index,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+
+ interface
+ integer function h5tbread_field_index_c(loc_id,namelen,dset_name,field_index,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBREAD_FIELD_INDEX_C'::h5tbread_field_index_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 :: namelen ! name length
+ end function h5tbread_field_index_c
+ end interface
+
+ namelen = len(dset_name)
+
+ errcode = h5tbread_field_index_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
+!
+! Purpose: Reads one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbread_field_index_f_float(loc_id,&
+ dset_name,&
+ field_index,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+
+ interface
+ integer function h5tbread_field_index_c(loc_id,namelen,dset_name,field_index,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBREAD_FIELD_INDEX_C'::h5tbread_field_index_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 :: namelen ! name length
+ end function h5tbread_field_index_c
+ end interface
+
+ namelen = len(dset_name)
+
+ errcode = h5tbread_field_index_c(loc_id,namelen,dset_name,field_index,&
+ start,nrecords,type_size,buf)
+
+end subroutine h5tbread_field_index_f_float
+
+!-------------------------------------------------------------------------
+! Function: h5tbread_field_index_f_double
+!
+! Purpose: Reads one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbread_field_index_f_double(loc_id,&
+ dset_name,&
+ field_index,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+
+ interface
+ integer function h5tbread_field_index_c(loc_id,namelen,dset_name,field_index,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBREAD_FIELD_INDEX_C'::h5tbread_field_index_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 :: namelen ! name length
+ end function h5tbread_field_index_c
+ end interface
+
+ namelen = len(dset_name)
+
+ errcode = h5tbread_field_index_c(loc_id,namelen,dset_name,field_index,&
+ start,nrecords,type_size,buf)
+
+end subroutine h5tbread_field_index_f_double
+
+!-------------------------------------------------------------------------
+! Function: h5tbread_field_index_f_string
+!
+! Purpose: Reads one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 12, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbread_field_index_f_string(loc_id,&
+ dset_name,&
+ field_index,&
+ start,&
+ nrecords,&
+ type_size,&
+ buf,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+
+ interface
+ integer function h5tbread_field_index_c(loc_id,namelen,dset_name,field_index,&
+ start,nrecords,type_size,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBREAD_FIELD_INDEX_C'::h5tbread_field_index_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 :: namelen ! name length
+ end function h5tbread_field_index_c
+ end interface
+
+ namelen = len(dset_name)
+
+ errcode = h5tbread_field_index_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
+!
+! Purpose: Inserts one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 13, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbinsert_field_f_int(loc_id,&
+ dset_name,&
+ field_name,&
+ field_type,&
+ field_index,&
+ buf,&
+ errcode )
+ implicit none
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ integer :: errcode ! error code
+
+
+ interface
+ integer function h5tbinsert_field_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ field_type,field_index,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBINSERT_FIELD_C'::h5tbinsert_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(HID_T), intent(IN) :: field_type ! field type
+ integer, intent(IN) :: field_index ! field_index
+ integer, intent(IN), dimension(*) :: buf ! data buffer
+ integer :: namelen ! name length
+ integer :: namelen1 ! name length length
+ end function h5tbinsert_field_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(field_name)
+
+ errcode = h5tbinsert_field_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
+!
+! Purpose: Inserts one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 13, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbinsert_field_f_float(loc_id,&
+ dset_name,&
+ field_name,&
+ field_type,&
+ field_index,&
+ buf,&
+ errcode )
+ implicit none
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ integer :: errcode ! error code
+
+
+ interface
+ integer function h5tbinsert_field_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ field_type,field_index,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBINSERT_FIELD_C'::h5tbinsert_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(HID_T), intent(IN) :: field_type ! field type
+ integer, intent(IN) :: field_index ! field_index
+ real, intent(IN), dimension(*) :: buf ! data buffer
+ integer :: namelen ! name length
+ integer :: namelen1 ! name length length
+ end function h5tbinsert_field_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(field_name)
+
+ errcode = h5tbinsert_field_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ field_type,field_index,buf)
+
+end subroutine h5tbinsert_field_f_float
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5tbinsert_field_f_double
+!
+! Purpose: Inserts one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 13, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbinsert_field_f_double(loc_id,&
+ dset_name,&
+ field_name,&
+ field_type,&
+ field_index,&
+ buf,&
+ errcode )
+ implicit none
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ integer :: errcode ! error code
+
+
+ interface
+ integer function h5tbinsert_field_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ field_type,field_index,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBINSERT_FIELD_C'::h5tbinsert_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(HID_T), intent(IN) :: field_type ! field type
+ integer, intent(IN) :: field_index ! field_index
+ double precision, intent(IN), dimension(*) :: buf ! data buffer
+ integer :: namelen ! name length
+ integer :: namelen1 ! name length length
+ end function h5tbinsert_field_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(field_name)
+
+ errcode = h5tbinsert_field_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ field_type,field_index,buf)
+
+end subroutine h5tbinsert_field_f_double
+
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5tbinsert_field_f_string
+!
+! Purpose: Inserts one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 13, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbinsert_field_f_string(loc_id,&
+ dset_name,&
+ field_name,&
+ field_type,&
+ field_index,&
+ buf,&
+ errcode )
+ implicit none
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ integer :: errcode ! error code
+
+
+ interface
+ integer function h5tbinsert_field_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ field_type,field_index,buf)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TBINSERT_FIELD_C'::h5tbinsert_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(HID_T), intent(IN) :: field_type ! field type
+ integer, intent(IN) :: field_index ! field_index
+ character(LEN=*), intent(IN), dimension(*) :: buf ! data buffer
+ integer :: namelen ! name length
+ integer :: namelen1 ! name length length
+ end function h5tbinsert_field_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(field_name)
+
+ errcode = h5tbinsert_field_c(loc_id,namelen,dset_name,namelen1,field_name,&
+ field_type,field_index,buf)
+
+end subroutine h5tbinsert_field_f_string
+
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5tbdelete_field_f_int
+!
+! Purpose: Inserts one field
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 13, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbdelete_field_f(loc_id,&
+ dset_name,&
+ field_name,&
+ errcode )
+ implicit none
+ 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 :: namelen ! name length
+ integer :: namelen1 ! name length
+ integer :: errcode ! error code
+
+
+ interface
+ integer function h5tbdelete_field_c(loc_id,namelen,dset_name,namelen1,field_name)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,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 :: namelen ! name length
+ integer :: namelen1 ! name length length
+ end function h5tbdelete_field_c
+ end interface
+
+ namelen = len(dset_name)
+ namelen1 = len(field_name)
+
+ errcode = h5tbdelete_field_c(loc_id,namelen,dset_name,namelen1,field_name)
+
+end subroutine h5tbdelete_field_f
+
+
+
+!-------------------------------------------------------------------------
+! Function: h5tbget_table_info_f
+!
+! Purpose: Gets the number of records and fields of a table
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 13, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbget_table_info_f(loc_id,&
+ dset_name,&
+ nfields,&
+ nrecords,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+
+ interface
+ integer function h5tbget_table_info_c(loc_id,namelen,dset_name,nfields,nrecords)
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,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 :: 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
+!
+! Purpose: Get information about fields
+!
+! Return: Success: 0, Failure: -1
+!
+! Programmer: pvn@ncsa.uiuc.edu
+!
+! Date: October 13, 2004
+!
+! Comments:
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+
+subroutine h5tbget_field_info_f(loc_id,&
+ dset_name,&
+ nfields,&
+ field_names,&
+ field_sizes,&
+ field_offsets,&
+ type_size,&
+ errcode )
+
+ implicit none
+ 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 :: namelen ! name length
+ integer, dimension(nfields) :: namelen2 ! name lengths
+ integer :: i ! general purpose integer
+
+ interface
+ integer function h5tbget_field_info_c(loc_id,namelen,dset_name,nfields,&
+ field_sizes,field_offsets,type_size,namelen2,field_names)
+
+ use H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,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(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 :: namelen ! name length
+ integer, dimension(nfields) :: namelen2 ! name lengths
+ end function h5tbget_field_info_c
+ end interface
+
+ namelen = len(dset_name)
+ do i = 1, nfields
+ namelen2(i) = len(field_names(i));
+ end do
+ errcode = h5tbget_field_info_c(loc_id,namelen,dset_name,nfields,&
+ field_sizes,field_offsets,type_size,namelen2,field_names)
+
+end subroutine h5tbget_field_info_f
+
+
+
+! end
+!
+end module H5TB
+
+
+
+
+
+
diff --git a/hl/fortran/src/H5f90i.h b/hl/fortran/src/H5f90i.h
new file mode 100755
index 0000000..52496a9
--- /dev/null
+++ b/hl/fortran/src/H5f90i.h
@@ -0,0 +1,228 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * 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. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+
+#ifndef _H5f90i_H
+#define _H5f90i_H
+
+/*
+ * Standard header files needed all the time
+ */
+
+#if (defined (UNICOS) || (defined (_UNICOS)))
+
+#include <fortran.h>
+
+/*typedef char* _fcd;*/
+typedef long hsize_t_f;
+typedef long hssize_t_f;
+typedef long size_t_f;
+typedef long int_f;
+typedef long hid_t_f;
+typedef double real_f;
+#define DF_CAPFNAMES
+/*#define _fcdtocp(desc) (desc)*/
+
+#endif /* UNICOS */
+
+#if defined(IBM6000) || defined(_AIX)
+
+typedef char *_fcd;
+typedef long long hsize_t_f;
+typedef long long hssize_t_f;
+typedef int size_t_f;
+typedef int int_f;
+typedef int hid_t_f;
+typedef float real_f;
+#define _fcdtocp(desc) (desc)
+#endif /*IBM6000*/
+
+/* MAC APPLE definitions with IBM XL compiler*/
+#if defined(__APPLE__)
+typedef char *_fcd;
+typedef long long hsize_t_f;
+typedef long long hssize_t_f;
+typedef int size_t_f;
+typedef int int_f;
+typedef int hid_t_f;
+typedef float real_f;
+#define FNAME(x) x
+#if defined H5_ABSOFT
+#define DF_CAPFNAMES
+#endif /*H5_ABSOFT*/
+#define _fcdtocp(desc) (desc)
+
+#endif /*APPLE*/
+
+
+/* LINUX definitions */
+#if (defined(i386) || defined(__i386__)) && (defined(linux) || defined(__linux__))
+
+
+/*#error "LINUX definitions"*/
+
+typedef char *_fcd;
+typedef long long hsize_t_f;
+typedef long long hssize_t_f;
+typedef int size_t_f;
+typedef int int_f;
+typedef int hid_t_f;
+typedef float real_f;
+#if defined H5_ABSOFT
+#define DF_CAPFNAMES
+#else
+#define FNAME_POST_UNDERSCORE
+#endif /*H5_ABSOFT*/
+#define _fcdtocp(desc) (desc)
+
+#endif /*LINUX*/
+
+/* LINUX64 definitions */
+#if defined __x86_64__
+
+typedef char *_fcd;
+typedef long long hsize_t_f;
+typedef long long hssize_t_f;
+typedef int size_t_f;
+typedef int int_f;
+typedef int hid_t_f;
+typedef float real_f;
+#define FNAME_POST_UNDERSCORE
+#define _fcdtocp(desc) (desc)
+#endif /*LINUX64*/
+
+/* IA64 LINUX definitions */
+#if defined __ia64
+
+typedef char *_fcd;
+typedef long hsize_t_f;
+typedef long hssize_t_f;
+typedef long size_t_f;
+typedef int int_f;
+typedef int hid_t_f;
+typedef float real_f;
+#define FNAME_POST_UNDERSCORE
+#define _fcdtocp(desc) (desc)
+
+#endif /* IA64 LINUX*/
+
+#if defined(IRIX) || defined(IRIS4) || defined(sgi) || defined(__sgi__) || defined(__sgi)
+
+typedef char *_fcd;
+typedef long hsize_t_f;
+typedef long hssize_t_f;
+typedef long size_t_f;
+typedef int int_f;
+typedef int hid_t_f;
+typedef float real_f;
+#define FNAME_POST_UNDERSCORE
+#define _fcdtocp(desc) (desc)
+#endif /* IRIX */
+
+#if (defined(SUN) || defined(sun) || defined(__sun__) || defined(__SUNPRO_C)) & !defined(__i386)
+
+typedef char *_fcd;
+typedef long long hssize_t_f;
+typedef long long hsize_t_f;
+typedef int size_t_f;
+typedef int int_f;
+typedef int hid_t_f;
+typedef float real_f;
+#define FNAME_POST_UNDERSCORE
+#define _fcdtocp(desc) (desc)
+
+#endif /*SUN*/
+
+#if defined DEC_ALPHA || (defined __alpha && defined __unix__ && !defined __linux__)
+
+typedef char *_fcd;
+typedef long hsize_t_f;
+typedef long hssize_t_f;
+typedef long size_t_f;
+typedef int int_f;
+typedef int hid_t_f;
+typedef float real_f;
+#define FNAME_POST_UNDERSCORE
+#define _fcdtocp(desc) (desc)
+
+#endif /* DEC_ALPHA */
+
+#if defined __alpha__ && defined __linux__
+
+typedef char *_fcd;
+typedef long long hsize_t_f;
+typedef long long hssize_t_f;
+typedef long long size_t_f;
+typedef int int_f;
+typedef int hid_t_f;
+typedef float real_f;
+#define FNAME_POST2_UNDERSCORE
+#define _fcdtocp(desc) (desc)
+
+#endif /* DEC_ALPHA_LINUX */
+
+#if defined(HP9000) || (!defined(__convexc__) && (defined(hpux) || defined(__hpux)))
+
+typedef char *_fcd;
+typedef long long hsize_t_f;
+typedef long long hssize_t_f;
+typedef long size_t_f;
+typedef int int_f;
+typedef int hid_t_f;
+typedef float real_f;
+#define _fcdtocp(desc) (desc)
+
+#endif /* HP9000 */
+
+
+#if defined _WINDOWS || defined WIN32
+
+typedef char *_fcd;
+typedef int hsize_t_f;
+typedef int hssize_t_f;
+typedef int size_t_f;
+typedef int int_f;
+typedef int hid_t_f;
+typedef float real_f;
+
+#define DF_CAPFNAMES
+#define _fcdtocp(desc) (desc)
+
+#endif /*WINDOWS */
+
+/*----------------------------------------------------------------
+** MACRO FNAME for any fortran callable routine name.
+**
+** This macro prepends, appends, or does not modify a name
+** passed as a macro parameter to it based on the FNAME_PRE_UNDERSCORE,
+** FNAME_POST_UNDERSCORE macros set for a specific system.
+**
+**---------------------------------------------------------------*/
+#if defined(FNAME_PRE_UNDERSCORE) && defined(FNAME_POST_UNDERSCORE)
+# define FNAME(x) _##x##_
+#endif
+#if defined(FNAME_PRE_UNDERSCORE) && !defined(FNAME_POST_UNDERSCORE)
+# define FNAME(x) _##x
+#endif
+#if !defined(FNAME_PRE_UNDERSCORE) && defined(FNAME_POST_UNDERSCORE)
+# define FNAME(x) x##_
+#endif
+#if !defined(FNAME_PRE_UNDERSCORE) && !defined(FNAME_POST_UNDERSCORE)
+# define FNAME(x) x
+#endif
+#if !defined(FNAME_PRE_UNDERSCORE) && defined(FNAME_POST2_UNDERSCORE)
+# define FNAME(x) x##__
+#endif
+
+#endif /* _H5f90i_H */
diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in
new file mode 100644
index 0000000..efb295d
--- /dev/null
+++ b/hl/fortran/src/Makefile.in
@@ -0,0 +1,75 @@
+##
+## 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.
+##
+## HDF5 Fortran Library Makefile(.in)
+##
+top_srcdir=@top_srcdir@
+top_builddir=../../..
+srcdir=@srcdir@
+@COMMENCE@
+
+HDF_FORTRAN="yes"
+
+hdf5_srcdir=$(top_srcdir)/src
+hdf5_builddir=$(top_builddir)/src
+hl_dir=$(top_srcdir)/hl/src
+TRACE=perl $(top_srcdir)/bin/trace
+
+## Add `-I.' to the C preprocessor flags.
+CPPFLAGS=-I. -I$(hdf5_builddir) -I$(hdf5_srcdir) -I$(srcdir) -I$(hl_dir) @CPPFLAGS@
+
+## This is our main target
+LIB=libhdf5hl_fortran.la
+
+## C hl
+HL_LIB=$(top_builddir)/hl/src/libhdf5_hl.la
+
+
+
+
+## h5fc and libhdf5_fortran.settings are generated during configure.
+## Remove them only when distclean.
+DISTCLEAN=
+
+## Public header files (to be installed)...
+PUB_HDR=
+PUB_PROGS=
+
+## Source and object files for the library
+ADD_PARALLEL_FILES=
+
+FPAR_MOD=${ADD_PARALLEL_FILES:yes=HDF5mpio.f90}
+
+CPARALLEL=${ADD_PARALLEL_FILES:yes=H5FDmpiof.c}
+CLIB_SRC=H5LTfc.c H5IMfc.c H5TBfc.c
+
+FPARALLEL=${ADD_PARALLEL_FILES:yes=H5FDmpioff.f90}
+FLIB_SRC=H5LTff.f90 H5IMff.f90 H5TBff.f90
+
+LIB_SRC=$(CLIB_SRC) $(FLIB_SRC)
+#LIB_OBJ=$(CLIB_SRC:.c=.lo) $(FLIB_SRC:.f90=.lo)
+LIB_OBJ=$(CLIB_SRC:.c=.lo) $(FLIB_SRC:.f90=.lo) $(HL_LIB)
+
+## Hardcode the dependencies of these files. There isn't a known way of
+## determining this automagically (like we do with the C files). So, when
+## doing a parallel make, some modules could be made way before the
+## modules they depend upon are actually made. *sigh*
+H5LTff.lo: $(srcdir)/H5LTff.f90
+H5IMff.lo: $(srcdir)/H5IMff.f90
+H5TBff.lo: $(srcdir)/H5TBff.f90
+
+
+
+ARFLAGS=rc
+
+@CONCLUDE@