Hello everyone.

My fortran code using hdf5 compiles nicely on a number of machines. After
losing my laptop (sad, but true) I am now installing hdf5 (and other stuff)
on my machine to be able to compile my code again. Needless to say, I have
made no changes to my code, so compilation should be a breeze after
installing all dependencies.

However, I get a number of errors of this kind (one per subroutine call, I
am doing several):
/home/paulanto/Code/Rayleigh2D/Rayleigh2D_Modules/R_save.f90:121.29:

            (/ i_surface /), int(1, kind=hsize_t), hdferr)
                             1
Error: Type mismatch in argument 'size' at (1); passed INTEGER(8) to
INTEGER(4)

The relevant subroutine call looks like this:
        call h5ltset_attribute_int_f(file_id, root, n_surfaces_name, &
            (/ i_surface /), int(1, kind=hsize_t), hdferr)
My preliminary conclusion is that hsize_t is somehow not the type that the
hdf5 subroutine is expecting. Probably it coincides with the correct type on
some CPUs or some operating systems, hence it has worked until now.

My hdf5 library (1.8.7) and my code are both compiled with gfortran 4.6.1,
which I have used with success before. One potential difference is that this
PC (which I'm borrowing) is running 32 bit linux. Is the error in my code,
is there a bug in hdf5, does gfortran handle this incorrectly, or something
else?

Thanks in advance,
Paul
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Reply via email to