program main

USE HDF5 ! This module contains all necessary modules for HDF5

IMPLICIT NONE

integer :: error
integer(HID_T) :: file_id       ! File identifier

integer(HSIZE_T), dimension(1) :: idims_atr=1     ! Atribute dimensions
integer(HSIZE_T) :: idims(2)        ! Dataset dimensions

integer(HID_T) :: dset_id     ! Dataset identifier
integer(HID_T) :: gr_id       ! Grup identifier
integer(HID_T) :: atr_id      ! Atribute identifier
integer(HID_T) :: space_id      ! Atribute identifier
integer(HID_T) :: type_id      ! Atribute identifier

integer(HSIZE_T), dimension(1) :: adims = (/1/)       ! Dataset dimensions
integer, parameter :: rank=2
integer(SIZE_T) :: hdfsize

integer(kind=4), dimension(3,2) :: kvar2

data kvar2 /130, 340, 2, 260, 370, 129/

idims(1)=3
idims(2)=2

     !
     ! Initialize FORTRAN interface.
     !
     CALL h5open_f(error) 

     !
     ! Create a HDF5 file
     !
     call h5fcreate_f("test.h5", H5F_ACC_TRUNC_F , file_id, error)

     !
     ! Create a new group
     !
     call h5gopen_f(file_id, "/", gr_id, error)

     !
     ! Create a DataSpace for DataSet
     !
     CALL h5screate_simple_f(rank,idims, space_id, error)

     !
     ! Create datatype for the DataSet
     !
     CALL h5tcopy_f(H5T_NATIVE_INTEGER, type_id, error)

     hdfsize=2
     call h5tset_size_f(type_id, hdfsize, error)


     !
     ! Create the dataset.
     !
     call h5dcreate_f(file_id,"/"//"data_set_name", type_id, space_id, dset_id, error)

     !
     ! Write the dataset.
     !
!     CALL h5dwrite_f(dset_id, type_id, kvar2, idims, error)
     CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, kvar2, idims, error)

     !
     ! Close the dataset.
     !
     CALL h5dclose_f(dset_id, error)

     !
     ! Close the group
     !
     CALL h5gclose_f(gr_id, error)
     
     !
     ! Close the file.
     !
     CALL h5fclose_f(file_id, error)
     
     !
     ! Close FORTRAN interface.
     !
     CALL h5close_f(error)

end
