Scot, Thank you for the tip about selected_integer_kind. I didn't know kind=1 is vendor dependent.
Regards, Cyril. Le 15/03/2011 17:02, Scot Breitenfeld a écrit : > Currently you can only use the high level functions for reading the > default integer type (i.e. 4 bytes or if -i8, 8 bytes) since the input > buffer is declared > INTEGER, INTENT(inout), ..... :: buf. > > The lower level function h5dread_f also only supports reading the > default integer for the same reason. > > There is a Fortran 2003 hdf5 function for h5dread_f where the call > would be: > > USE ISO_C_BINDING > TYPE(C_PTR) :: f_ptr > > f_ptr = C_LOC(umesh%elements(1)) > CALL H5Dread_f(dataset, H5T_NATIVE_INTEGER_1, f_ptr, error) > > but it's currently only available in a development branch and only for > the lower level functions. > > BTW, kind=1 is not standard since it's up to the compiler vendor to > determine if kind=bytes or not, you should select the integer kind > using selected_integer_kind, which will also tell you if integer*1 is > available. > > > On 03/15/2011 05:59 AM, Giraudon Cyril wrote: >> Hello, >> >> I try to use the function h5ltread_dataset_f to read a integer(kind=1) >> array. >> >> An example of my code is at : >> https://code.google.com/p/amelet-hdf/source/browse/amelethdf-fortran/trunk/src/amelethdf/unstructuredmesh.f90#107 >> >> >> I have to read values in a temporary integer(kind=4) array otherwise the >> compiler says there is no function to read the dataset : >> >> ! Elements definition >> >> type unstructured_mesh_t >> ... >> integer(kind=1), dimension(:), allocatable :: elements >> ... >> end type unstructured_mesh_t >> >> .... >> ! Elements reading >> >> integer, dimension(:), allocatable :: tmpelements >> >> allocate(umesh%elements(one_dims(1))) >> >> allocate(tmpelements(one_dims(1))) >> >> call h5ltread_dataset_f(file_id, path, H5T_NATIVE_INTEGER_4,& >> >> tmpelements, one_dims, hdferr) >> >> umesh%elements = tmpelements >> >> deallocate(tmpelements) >> >> >> >> I thought I could write : >> >> call h5ltread_dataset_f(file_id, path, H5T_NATIVE_INTEGER_1,& >> >> umesh%elements, one_dims, hdferr) >> >> >> Is there anything I do wrong ? >> >> >> >> I use HDF5 1.8.6 with ifort under Linux Ubuntu 10.04 >> >> Thanks a lot, >> >> Best regards, >> >> Cyril. >> >> >> >> _______________________________________________ >> Hdf-forum is for HDF software users discussion. >> [email protected] >> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org >> > > _______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
