Hi,
On 01/10/13 16:59, [email protected] wrote:
On 2013-01-10 08:20, Marcin Dulak wrote:
Hi,
On 01/10/13 00:30, [email protected] wrote:
SIZEOF is a non-standard compiler intrinsic. Your compiler's version
of SIZEOF can not handle derived types. Fortunately, F2008 has
introduced intrinsic functions STORAGE_SIZE and C_SIZEOF, but this
will probably not help you as your compiler probably does not have
those. Most of the newer compilers have the SIZEOF function that can
handle derived types if upgrading is an option.
there is a bug opened for that
https://bugs.open64.net/show_bug.cgi?id=866 but no response since
2011.
What about adding a simple check for derived types SIZEOF to the hdf5
configure check for FORTRAN_HAVE_SIZEOF?
Will that use something else instead of SIZEOF?
We have a SIZEOF check, but we don't test if it can handle derived
types. The SIZEOF check only comes into play when you use
--enable-fortran2003, and it is our experience that if SIZEOF can not
handle derived types then odds are the compiler also can not handle
other F2003 requirements. If you ignore the SIZEOF error for now, you
will also receive multiple errors for C_LOC and C_F_POINTER when
compiling the hdf5 tests. The compiler is to buggy (in its
implementation of the F2003 standard) to use the option
--enable-fortran2003, so if you need the F2003 hdf5 features then you
will have to use a different compiler (or submit bug reports to the
compiler, but turn around time seems long). Otherwise leave off the
--enable-fortran2003 and the library compiles/runs fine (but will not
include F2003 APIs). Looks like we need additional tests at configure
time for making sure the selected compiler is up to the F2003 task.
dropping --enable-fortran2003 helps.
HDF5 compiles, but the tests fail early on i686:
============================
Testing ohdr
============================
ohdr Test Log
============================
Using default file format:
Testing object header continuation block
lt-ohdr: H5AC.c:741: H5AC_expunge_entry: Assertion
`((addr)!=((haddr_t)(int64_t)(-1)))' failed.
0.08user 0.06system 0:00.43elapsed 34%CPU (0avgtext+0avgdata
29504maxresident)k
0inputs+160outputs (0major+10560minor)pagefaults 0swaps
Therefore i moved to a x86_64 (still CentOS6), with a larger memory
available,
and now, during the (long) tests only some (16 in total) fail:
Testing ph5diff h5diff_basic1.h5
*FAILED*
Testing ph5diff -d -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/ds*FAILED*
Testing ph5diff -d 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/d*FAILED*
Testing ph5diff -p -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/ds*FAILED*
Testing ph5diff -p 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/d*FAILED*
Testing ph5diff -n -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/ds*FAILED*
Testing ph5diff -n 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dse*FAILED*
Testing ph5diff -n u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/dse*FAILED*
Testing ph5diff -n 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3
g1/d*FAILED*
Testing ph5diff -v -d 5 -p 0.05 --use-system-epsilon h5diff_basic1.h5
*FAILED*
Testing ph5diff -v -d 5 -p 0.05 h5diff_basic1.h5 h5diff_basic2.h5
/g1/*FAILED*
Testing ph5diff -v -p 0.05 -d 5 h5diff_basic1.h5 h5diff_basic2.h5
/g1/*FAILED*
Testing ph5diff -v -d 5 --use-system-epsilon h5diff_basic1.h5
h5diff_b*FAILED*
Testing ph5diff -v --use-system-epsilon -d 5 h5diff_basic1.h5
h5diff_b*FAILED*
Testing ph5diff -v -p 0.05 --use-system-epsilon h5diff_basic1.h5
h5dif*FAILED*
Testing ph5diff -v --use-system-epsilon -p 0.05 h5diff_basic1.h5
h5dif*FAILED*
With some additional information (this is for the first failure):
h5diff error: missing file names
+ mpiexec noticed that the job aborted, but has no info as to the
process
+ that caused that situation.
usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
====The actual output (./testfiles/h5diff_600.out-sav)
usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
Next failures complain about "<-d -4> is not a valid option", etc.
What can be causing those?
I have full logs available if anybody is interested.
Best regards,
Marcin
The point is that hdf5 requires not only a presence of SIZEOF
intrinsic, but also the one that supports those derived types.
Best regards,
Marcin
On 2013-01-09 09:37, Marcin Dulak wrote:
Hi,
i'm building with (default el6 openmpi):
module load openmpi-i386
export PATH=/opt/open64/bin:${PATH}
export OMPI_CC=opencc
export OMPI_CXX=openCC
export OMPI_F77=openf90
export OMPI_FC=openf90
mpicc --version
mpif90 --version
FC=mpif90 CC=mpicc CXX=mpic++ \
./configure --prefix=${HOME}/hdf5-1.8.10-1 \
--enable-parallel \
--enable-fortran \
--enable-fortran2003 \
--enable-dependency-tracking \
--enable-shared \
--enable-static \
--enable-static-exec \
--enable-debug=all
make
resulting with:
CALL h5tcreate_f(H5T_COMPOUND_F, INT(SIZEOF(fill_ctype),size_t),
comp_type_id, error)
^
openf95-700 openf90: ERROR TEST_CREATE, File = tH5P_F03.f90, Line =
142, Column = 40
The intrinsic call "SIZEOF" is being made with illegal arguments.
CALL VERIFY("h5pget_nprops_f", INT(nprops), 4, total_error)
^
openf95-1675 openf90: WARNING TEST_GENPROP_CLASS_CALLBACK, File =
tH5P_F03.f90, Line = 309, Column = 8
Intrinsic "VERIFY" is a function, so this call to a subroutine will
be treated as "external"
It looks like there is a conflict between the open64 intrinsic and
hdf5 names.
See also
http://www.democritos.it/pipermail/pw_forum/2009-August/013830.html
Best regards,
Marcin
_______________________________________________
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
--
***********************************
Marcin Dulak
Technical University of Denmark
Department of Physics
Building 307, Room 229
DK-2800 Kongens Lyngby
Denmark
Tel.: (+45) 4525 3157
Fax.: (+45) 4593 2399
email: [email protected]
***********************************
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org