summaryrefslogtreecommitdiffstats
path: root/hl/fortran/src/H5IMff.F90
diff options
context:
space:
mode:
Diffstat (limited to 'hl/fortran/src/H5IMff.F90')
-rw-r--r--hl/fortran/src/H5IMff.F90601
1 files changed, 601 insertions, 0 deletions
diff --git a/hl/fortran/src/H5IMff.F90 b/hl/fortran/src/H5IMff.F90
new file mode 100644
index 0000000..a1be745
--- /dev/null
+++ b/hl/fortran/src/H5IMff.F90
@@ -0,0 +1,601 @@
+!> @defgroup FH5IM Fortran High Level Images (H5IM) Interface
+!!
+!! @see H5IM, C-HL API
+!!
+!! @see @ref H5IM_UG, User Guide
+!!
+
+!> @ingroup FH5IM
+!!
+!! @brief This module contains Fortran interfaces for H5IM.
+!
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! 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 COPYING file, which can be found at the root of the source code *
+! distribution tree, or in https://www.hdfgroup.org/licenses. *
+! If you do not have access to either file, you may request a copy from *
+! help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! _____ __ __ _____ ____ _____ _______ _ _ _______
+! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __|
+! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | ****
+! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | ****
+! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | ****
+! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_|
+!
+! If you add a new function here then you MUST add the function name to the
+! Windows dll file 'hdf5_hl_fortrandll.def.in' in the hl/fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+
+MODULE H5IM
+ USE, INTRINSIC :: ISO_C_BINDING
+ USE h5fortran_types
+ USE hdf5
+CONTAINS
+
+!>
+!! \ingroup FH5IM
+!!
+!! \brief Creates and writes an image an 8 bit image
+!!
+!! \param loc_id Location identifier. The identifier may be that of a file or group.
+!! \param dset_name The name of the dataset to create.
+!! \param width The width of the image.
+!! \param height The height of the image
+!! \param buf Buffer with data to be written to the dataset
+!! \param errcode \fortran_error
+!!
+!! See C API: @ref H5IMmake_image_8bit()
+!!
+ SUBROUTINE h5immake_image_8bit_f(loc_id,&
+ dset_name,&
+ width,&
+ height,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(len=*), INTENT(in) :: dset_name
+ INTEGER(hsize_t), INTENT(in) :: width
+ INTEGER(hsize_t), INTENT(in) :: height
+ INTEGER, INTENT(in), DIMENSION(*) :: buf
+ INTEGER :: errcode
+ INTEGER(size_t) :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5immake_image_8bit_c(loc_id,namelen,dset_name,width,height,buf) &
+ BIND(C,NAME='h5immake_image_8bit_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ INTEGER(size_t) :: namelen
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name
+ INTEGER(hsize_t), INTENT(in) :: width
+ INTEGER(hsize_t), INTENT(in) :: height
+ INTEGER , INTENT(in), DIMENSION(*) :: buf
+ 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
+
+!>
+!! \ingroup FH5IM
+!!
+!! \brief Reads image data from disk.
+!!
+!! \param loc_id Location identifier. The identifier may be that of a file or group.
+!! \param dset_name The name of the dataset to create.
+!! \param buf Buffer with data to store the image.
+!! \param errcode \fortran_error
+!!
+!! See C API: @ref H5IMread_image()
+!!
+ SUBROUTINE h5imread_image_f(loc_id,&
+ dset_name,&
+ buf,&
+ errcode )
+
+ IMPLICIT NONE
+
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(len=*), INTENT(in) :: dset_name
+ INTEGER, INTENT(inout), DIMENSION(*) :: buf
+ INTEGER :: errcode
+ INTEGER(size_t) :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5imread_image_c(loc_id,namelen,dset_name,buf) &
+ BIND(C,NAME='h5imread_image_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ INTEGER(size_t) :: namelen
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name
+ INTEGER, INTENT(inout), DIMENSION(*) :: buf
+ 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
+
+!>
+!! \ingroup FH5IM
+!!
+!! \brief Creates and writes an image a 24 bit image.
+!!
+!! \param loc_id Location identifier. The identifier may be that of a file or group.
+!! \param dset_name The name of the dataset to create.
+!! \param width The width of the image.
+!! \param height The height of the image.
+!! \param il String defining the interlace mode.
+!! \param buf Buffer with data to be written to the dataset.
+!! \param errcode \fortran_error
+!!
+!! See C API: @ref H5IMmake_image_24bit()
+!!
+ SUBROUTINE h5immake_image_24bit_f(loc_id, dset_name, width, height, il, buf, errcode)
+
+ IMPLICIT NONE
+
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(len=*), INTENT(in) :: dset_name
+ INTEGER(hsize_t), INTENT(in) :: width
+ INTEGER(hsize_t), INTENT(in) :: height
+ CHARACTER(len=*), INTENT(in) :: il
+ INTEGER, INTENT(in), DIMENSION(*) :: buf
+ INTEGER :: errcode
+ INTEGER(size_t) :: namelen ! name length
+ INTEGER(size_t) :: ILEN ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5immake_image_24bit_c(loc_id,namelen,dset_name,ILEN,il,width,height,buf) &
+ BIND(C,NAME='h5immake_image_24bit_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name
+ INTEGER(hsize_t), INTENT(in) :: width
+ INTEGER(hsize_t), INTENT(in) :: height
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: il
+ INTEGER, INTENT(in), DIMENSION(*) :: buf
+ INTEGER(size_t) :: namelen
+ INTEGER(size_t) :: ILEN
+
+ 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
+
+!>
+!! \ingroup FH5IM
+!!
+!! \brief Gets information about an image dataset (dimensions, interlace mode and number of associated palettes).
+!!
+!! \param loc_id Location identifier. The identifier may be that of a file or group.
+!! \param dset_name The name of the dataset.
+!! \param width The width of the image.
+!! \param height The height of the image.
+!! \param planes The number of color planes of the image.
+!! \param interlace The interlace mode of the image.
+!! \param npals The number of palettes associated to the image.
+!! \param errcode \fortran_error
+!!
+!! See C API: @ref H5IMget_image_info()
+!!
+ SUBROUTINE h5imget_image_info_f(loc_id,&
+ dset_name,&
+ width,&
+ height,&
+ planes,&
+ interlace,&
+ npals,&
+ errcode )
+
+ IMPLICIT NONE
+
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(len=*), INTENT(in) :: dset_name
+ INTEGER(hsize_t), INTENT(inout) :: width
+ INTEGER(hsize_t), INTENT(inout) :: height
+ INTEGER(hsize_t), INTENT(inout) :: planes
+ INTEGER(hsize_t), INTENT(inout) :: npals
+ CHARACTER(len=*), INTENT(inout) :: interlace
+ INTEGER :: errcode
+ INTEGER(size_t) :: namelen ! name length
+ INTEGER(size_t) :: ILEN ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5imget_image_info_c(loc_id,namelen,dset_name,width,height,planes,npals,ILEN,interlace) &
+ BIND(C,NAME='h5imget_image_info_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name
+ INTEGER(hsize_t), INTENT(inout) :: width
+ INTEGER(hsize_t), INTENT(inout) :: height
+ INTEGER(hsize_t), INTENT(inout) :: planes
+ INTEGER(hsize_t), INTENT(inout) :: npals
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(inout) :: interlace
+ INTEGER(size_t) :: namelen
+ INTEGER(size_t) :: ILEN
+ 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
+
+!>
+!! \ingroup FH5IM
+!!
+!! \brief Inquires if a dataset is an image.
+!!
+!! \param loc_id Location identifier. The identifier may be that of a file or group.
+!! \param dset_name The name of the dataset.
+!!
+!! See C API: @ref H5IMis_image()
+!!
+ INTEGER FUNCTION h5imis_image_f(loc_id, dset_name)
+
+ IMPLICIT NONE
+
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(len=*), INTENT(in) :: dset_name
+ INTEGER :: errcode ! error code
+ INTEGER(size_t) :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5imis_image_c(loc_id,namelen,dset_name) &
+ BIND(C,NAME='h5imis_image_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ INTEGER(size_t) :: namelen
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name
+ 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
+
+!>
+!! \ingroup FH5IM
+!!
+!! \brief Creates and writes a palette
+!!
+!! \param loc_id Location identifier. The identifier may be that of a file or group.
+!! \param pal_name The name of the palette.
+!! \param pal_dims An array of the size of the palette dimensions.
+!! \param pal_data Buffer with data to be written to the dataset.
+!! \param errcode \fortran_error
+!!
+!! See C API: @ref H5IMmake_palette()
+!!
+ SUBROUTINE h5immake_palette_f(loc_id,&
+ pal_name,&
+ pal_dims,&
+ pal_data,&
+ errcode )
+
+ IMPLICIT NONE
+
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(len=*), INTENT(in) :: pal_name
+ INTEGER(hsize_t), INTENT(in), DIMENSION(*) :: pal_dims
+ INTEGER, INTENT(in), DIMENSION(*) :: pal_data
+ INTEGER :: errcode
+ INTEGER(size_t) :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5immake_palette_c(loc_id,namelen,pal_name,pal_dims,pal_data) &
+ BIND(C,NAME='h5immake_palette_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ INTEGER(size_t) :: namelen
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: pal_name
+ INTEGER(hsize_t), INTENT(in), DIMENSION(*) :: pal_dims
+ INTEGER, INTENT(in), DIMENSION(*) :: pal_data
+ END FUNCTION h5immake_palette_c
+ END INTERFACE
+
+ namelen = LEN(pal_name)
+ errcode = h5immake_palette_c(loc_id,namelen,pal_name,pal_dims,pal_data)
+
+ END SUBROUTINE h5immake_palette_f
+
+!>
+!! \ingroup FH5IM
+!!
+!! \brief This function attaches a palette to an existing image dataset.
+!!
+!! \param loc_id Location identifier. The identifier may be that of a file or group.
+!! \param image_name The name of the dataset to attach the palette to.
+!! \param pal_name The name of the palette.
+!! \param errcode \fortran_error
+!!
+!! See C API: @ref H5IMlink_palette()
+!!
+ SUBROUTINE h5imlink_palette_f(loc_id,&
+ image_name,&
+ pal_name,&
+ errcode )
+
+ IMPLICIT NONE
+
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(len=*), INTENT(in) :: image_name
+ CHARACTER(len=*), INTENT(in) :: pal_name
+ INTEGER :: errcode
+ INTEGER(size_t) :: namelen ! name length
+ INTEGER(size_t) :: ILEN ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5imlink_palette_c(loc_id,namelen,image_name,ILEN,pal_name) &
+ BIND(C,NAME='h5imlink_palette_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: image_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: pal_name
+ INTEGER(size_t) :: namelen
+ INTEGER(size_t) :: ILEN
+ END FUNCTION h5imlink_palette_c
+ END INTERFACE
+
+ namelen = LEN(image_name)
+ ILEN = LEN(pal_name)
+ errcode = h5imlink_palette_c(loc_id,namelen,image_name,ILEN,pal_name)
+
+ END SUBROUTINE h5imlink_palette_f
+
+!>
+!! \ingroup FH5IM
+!!
+!! \brief This function dettaches a palette to an existing image dataset.
+!!
+!! \param loc_id Location identifier. The identifier may be that of a file or group.
+!! \param image_name The name of the image dataset.
+!! \param pal_name The name of the palette.
+!! \param errcode \fortran_error
+!!
+!! See C API: @ref H5IMunlink_palette()
+!!
+ SUBROUTINE h5imunlink_palette_f(loc_id,&
+ image_name,&
+ pal_name,&
+ errcode )
+
+ IMPLICIT NONE
+
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(len=*), INTENT(in) :: image_name
+ CHARACTER(len=*), INTENT(in) :: pal_name
+ INTEGER :: errcode
+ INTEGER(size_t) :: namelen ! name length
+ INTEGER(size_t) :: ILEN ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5imunlink_palette_c(loc_id,namelen,image_name,ILEN,pal_name) &
+ BIND(C,NAME='h5imunlink_palette_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: image_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: pal_name
+ INTEGER(size_t) :: namelen
+ INTEGER(size_t) :: ILEN
+ END FUNCTION h5imunlink_palette_c
+ END INTERFACE
+
+ namelen = LEN(image_name)
+ ILEN = LEN(pal_name)
+ errcode = h5imunlink_palette_c(loc_id,namelen,image_name,ILEN,pal_name)
+
+ END SUBROUTINE h5imunlink_palette_f
+
+!>
+!! \ingroup FH5IM
+!!
+!! \brief Gets the number of palettes associated to an image.
+!!
+!! \param loc_id Location identifier. The identifier may be that of a file or group.
+!! \param image_name The name of the image dataset.
+!! \param npals The number of palettes.
+!! \param errcode \fortran_error
+!!
+!! See C API: @ref H5IMget_npalettes()
+!!
+ SUBROUTINE h5imget_npalettes_f(loc_id,&
+ image_name,&
+ npals,&
+ errcode )
+
+ IMPLICIT NONE
+
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(len=*), INTENT(in) :: image_name
+ INTEGER(hsize_t), INTENT(inout) :: npals
+ INTEGER :: errcode
+ INTEGER(size_t) :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5imget_npalettes_c(loc_id,namelen,image_name,npals) &
+ BIND(C,NAME='h5imget_npalettes_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: image_name
+ INTEGER(hsize_t), INTENT(inout) :: npals
+ INTEGER(size_t) :: namelen
+ END FUNCTION h5imget_npalettes_c
+ END INTERFACE
+
+ namelen = LEN(image_name)
+ errcode = h5imget_npalettes_c(loc_id,namelen,image_name,npals)
+
+ END SUBROUTINE h5imget_npalettes_f
+
+!>
+!! \ingroup FH5IM
+!!
+!! \brief Gets information about a palette dataset (dimensions).
+!!
+!! \param loc_id Location identifier. The identifier may be that of a file or group.
+!! \param image_name The name of the image dataset.
+!! \param pal_number The zero based index that identifies the palette.
+!! \param pal_dims The dimensions of the palette dataset.
+!! \param errcode \fortran_error
+!!
+!! See C API: @ref H5IMget_palette_info()
+!!
+ SUBROUTINE h5imget_palette_info_f(loc_id,&
+ image_name,&
+ pal_number,&
+ pal_dims,&
+ errcode )
+
+ IMPLICIT NONE
+
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(len=*), INTENT(in) :: image_name
+ INTEGER, INTENT(in) :: pal_number
+ INTEGER(hsize_t), DIMENSION(*), INTENT(inout) :: pal_dims
+ INTEGER :: errcode
+ INTEGER(size_t) :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5imget_palette_info_c(loc_id,namelen,image_name,pal_number,pal_dims) &
+ BIND(C,NAME='h5imget_palette_info_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: image_name
+ INTEGER, INTENT(in) :: pal_number
+ INTEGER(hsize_t), DIMENSION(*), INTENT(inout) :: pal_dims
+ INTEGER(size_t) :: namelen
+ END FUNCTION h5imget_palette_info_c
+ END INTERFACE
+
+ namelen = LEN(image_name)
+ errcode = h5imget_palette_info_c(loc_id,namelen,image_name,pal_number,pal_dims)
+
+ END SUBROUTINE h5imget_palette_info_f
+
+!>
+!! \ingroup FH5IM
+!!
+!! \brief Gets the palette dataset
+!!
+!! \param loc_id Location identifier. The identifier may be that of a file or group.
+!! \param image_name The name of the image dataset.
+!! \param pal_number The zero based index that identifies the palette.
+!! \param pal_data The palette dataset.
+!! \param errcode \fortran_error
+!!
+!! See C API: @ref H5IMget_palette_info()
+!!
+ SUBROUTINE h5imget_palette_f(loc_id,&
+ image_name,&
+ pal_number,&
+ pal_data,&
+ errcode )
+
+ IMPLICIT NONE
+
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(len=*), INTENT(in) :: image_name
+ INTEGER, INTENT(in) :: pal_number
+ INTEGER, INTENT(inout), DIMENSION(*) :: pal_data
+ INTEGER :: errcode
+ INTEGER(size_t) :: namelen ! length of name buffer
+
+ INTERFACE
+ INTEGER FUNCTION h5imget_palette_c(loc_id,namelen,image_name,pal_number,pal_data) &
+ BIND(C,NAME='h5imget_palette_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ INTEGER(size_t) :: namelen
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: image_name
+ INTEGER, INTENT(in) :: pal_number
+ INTEGER, INTENT(inout), DIMENSION(*) :: pal_data
+ END FUNCTION h5imget_palette_c
+ END INTERFACE
+
+ namelen = LEN(image_name)
+ errcode = h5imget_palette_c(loc_id,namelen,image_name,pal_number,pal_data)
+
+ END SUBROUTINE h5imget_palette_f
+
+!>
+!! \ingroup FH5IM
+!!
+!! \brief Inquires if a dataset is a palette. Returns zero (false), a positive (true) or a negative (failure) value.
+!!
+!! \param loc_id Location identifier. The identifier may be that of a file or group.
+!! \param dset_name The name of the dataset.
+!!
+!! See C API: @ref H5IMis_palette()
+!!
+ INTEGER FUNCTION h5imis_palette_f(loc_id, dset_name)
+
+ IMPLICIT NONE
+
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ CHARACTER(len=*), INTENT(in) :: dset_name
+ INTEGER :: errcode
+ INTEGER(size_t) :: namelen ! name length
+
+ INTERFACE
+ INTEGER FUNCTION h5imis_palette_c(loc_id,namelen,dset_name) &
+ BIND(C,NAME='h5imis_palette_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(hid_t), INTENT(in) :: loc_id
+ INTEGER(size_t) :: namelen
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(in) :: dset_name
+ 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 MODULE H5IM
+