Compiling error in 6.12.1 about "illegal data type length.."
Posted: Sat Feb 04, 2012 4:49 pm
I tried to compile Abinit 6.12.1 in OpenSUSE 12.1 x86_64 system on intel i5-750.
The gcc (with g++ and gfortran) version is:
MPICH2 v1.4 was compiled by pgf90 (PGI workstation x86_64 v9.0, trial version).
I began configure by the command: ./configure --prefix=${HOME}/Abinit --enable-mpi=yes --enable-64bit-flags=yes FC=mpif90
After the success of configure, I began compiling by: make mj4
Then I found the compilation skip BLAS-LAPACK process and met an error, checking fortran compiler works...no, when etsf-io was configuring.
Finally I found the problem was in fallbacks/exports, the folder "lib64" was built instead of "lib". Therefore I made "ln -s ./lib64 ./lib" and copied libblas.a and liblapack.a from PWscf to fallbacks/exports/lib64. Then, all of plugin-software was compiled well.
But, when it ran to src/12_hide_mpi, a serious problem occurred:
This problem was caused by the source code in m_xmpi.F90:
By the way, before this problem, the /src/11_qespresso_ext/read_upf_pwscf.F90 and /src/12_hide_mpi/m_xmpi.F90 need defs_basis.mod for compiling:
I had to copy the file defs_basis.mod manually.....
All of above problems does not happen in the CentOS v6.2 x86_64 with MPICH2-v1.4 compiled by ifort 12.
The gcc (with g++ and gfortran) version is:
Code: Select all
gcc (SUSE Linux) 4.6.2
Copyright (C) 2011 Free Software Foundation, Inc.
MPICH2 v1.4 was compiled by pgf90 (PGI workstation x86_64 v9.0, trial version).
I began configure by the command: ./configure --prefix=${HOME}/Abinit --enable-mpi=yes --enable-64bit-flags=yes FC=mpif90
After the success of configure, I began compiling by: make mj4
Then I found the compilation skip BLAS-LAPACK process and met an error, checking fortran compiler works...no, when etsf-io was configuring.
Finally I found the problem was in fallbacks/exports, the folder "lib64" was built instead of "lib". Therefore I made "ln -s ./lib64 ./lib" and copied libblas.a and liblapack.a from PWscf to fallbacks/exports/lib64. Then, all of plugin-software was compiled well.
But, when it ran to src/12_hide_mpi, a serious problem occurred:
mpif90 -DHAVE_CONFIG_H -I. -I../.. -I../../src/incs -I../../src/incs -I/home/user/abinit-6.12.1/fallbacks/exports/include -g -c -o m_xmpi.o m_xmpi.F90
mpif90 -DHAVE_CONFIG_H -I. -I../.. -I../../src/incs -I../../src/incs -I/home/user/abinit-6.12.1/fallbacks/exports/include -g -c -o interfaces_12_hide_mpi.o interfaces_12_hide_mpi.F90
PGF90-W-0031-Illegal data type length specifier for integer (m_xmpi.F90: 1917)
PGF90-W-0031-Illegal data type length specifier for delim_record16 (m_xmpi.F90: 1917)
PGF90-W-0031-Illegal data type length specifier for integer (m_xmpi.F90: 2058)
PGF90-W-0031-Illegal data type length specifier for delim_record16 (m_xmpi.F90: 2058)
PGF90-W-0031-Illegal data type length specifier for integer (m_xmpi.F90: 2456)
PGF90-W-0031-Illegal data type length specifier for bufdelim16 (m_xmpi.F90: 2456)
PGF90-W-0031-Illegal data type length specifier for integer (m_xmpi.F90: 2693)
PGF90-W-0031-Illegal data type length specifier for bufdelim16 (m_xmpi.F90: 2693)
PGF90-S-0450-Argument number 3 to mpi_type_hvector: kind mismatch (m_xmpi.F90: 2214)
0 inform, 0 warnings, 1 severes, 0 fatal for xmpio_create_fsubarray_2d
PGF90-S-0450-Argument number 3 to mpi_type_hvector: kind mismatch (m_xmpi.F90: 2297)
PGF90-S-0450-Argument number 3 to mpi_type_hvector: kind mismatch (m_xmpi.F90: 2299)
0 inform, 0 warnings, 2 severes, 0 fatal for xmpio_create_fsubarray_3d
PGF90-S-0450-Argument number 3 to mpi_type_hvector: kind mismatch (m_xmpi.F90: 2383)
PGF90-S-0450-Argument number 3 to mpi_type_hvector: kind mismatch (m_xmpi.F90: 2385)
PGF90-S-0450-Argument number 3 to mpi_type_hvector: kind mismatch (m_xmpi.F90: 2387)
0 inform, 0 warnings, 3 severes, 0 fatal for xmpio_create_fsubarray_4d
This problem was caused by the source code in m_xmpi.F90:
Code: Select all
!Local variables-------------------------------
!scalars
integer :: bsize_frm,mpi_type_frm
integer*2 :: delim_record2
integer*4 :: delim_record4
integer*8 :: delim_record8
#if defined HAVE_FC_INT_QUAD
integer*16 :: delim_record16 ! <---------------- problem is here
#endif
character(len=500) :: msg
!arrays
integer :: statux(MPI_STATUS_SIZE)
By the way, before this problem, the /src/11_qespresso_ext/read_upf_pwscf.F90 and /src/12_hide_mpi/m_xmpi.F90 need defs_basis.mod for compiling:
Code: Select all
use defs_basis
I had to copy the file defs_basis.mod manually.....
All of above problems does not happen in the CentOS v6.2 x86_64 with MPICH2-v1.4 compiled by ifort 12.