Commit e5940a5b authored by Daniel Wortmann's avatar Daniel Wortmann

Some fixes in diagonalization part

apws has to be compiled without optimization on new intel compiler
parent 8464d007
......@@ -7,6 +7,7 @@
if (${CMAKE_Fortran_COMPILER_ID} MATCHES "Intel")
set_source_files_properties(io/eig66_mpi.F90 PROPERTIES COMPILE_FLAGS -O0)
set_source_files_properties(cdn/pwden.F90 PROPERTIES COMPILE_FLAGS -O0)
set_source_files_properties(eigen/apws.F90 PROPERTIES COMPILE_FLAGS -O0)
set_source_files_properties(init/lhcal.f PROPERTIES COMPILE_FLAGS -O0)
endif()
......@@ -18,16 +18,17 @@ function configure_machine(){
if module list 2>&1 |grep -q intel-para
then
echo "Intel toolchain used"
if module list 2>&1| grep -q Python/2.7.12
if module list 2>&1| grep -q Python/2.7.12 &&
module list 2>&1| grep -q HDF5 &&
module list 2>&1| grep -q CMake &&
module list 2>&1| grep -q ELPA
then
echo "Python module loaded for XML (OK)"
echo "All required modules load loaded"
else
echo "You have to load the Python module"
echo "module load Python/2.7.12"
echo "You have to load the required modules"
echo "module load Python/2.7.12 CMake HDF5 ELPA/2016.05.003-hybrid"
exit
fi
#module load ELPA/2016.05.003-hybrid
module load HDF5
export CC=mpicc
export FC=mpif90
export CMAKE_Fortran_FLAGS="$CMAKE_Fortran_FLAGS -I$ELPA_MODULES -I$EBROOTHDF5/include -mkl"
......
......@@ -6,7 +6,7 @@
MODULE m_chani
CONTAINS
SUBROUTINE chani(M,N,Neigd, Myid,Np,Sub_comm,mpi_comm, &
SUBROUTINE chani(M,Neigd, Myid,Np,Sub_comm,mpi_comm, &
Eig,Num,hamOvlp,zMat)
!
!----------------------------------------------------
......@@ -39,7 +39,7 @@ CONTAINS
IMPLICIT NONE
INCLUDE 'mpif.h'
INTEGER, INTENT (IN) :: neigd,m,n
INTEGER, INTENT (IN) :: neigd,m
INTEGER, INTENT (IN) :: SUB_COMM,np,myid,mpi_comm
INTEGER, INTENT (INOUT) :: num
REAL, INTENT (OUT) :: eig(neigd)
......@@ -88,11 +88,11 @@ CONTAINS
DO i = myid+1, m, np
nc = nc + 1
ENDDO
IF (nc.GT.n) THEN
WRITE (6,*) myid,'gets more columns than allowed:'
WRITE (6,*) myid,'will get',nc,' columns, only',n,' allowed'
CALL juDFT_error("chani: nc > n",calledby ="chani")
ENDIF
!IF (nc.GT.n) THEN
! WRITE (6,*) myid,'gets more columns than allowed:'
! WRITE (6,*) myid,'will get',nc,' columns, only',n,' allowed'
! CALL juDFT_error("chani: nc > n",calledby ="chani")
!ENDIF
!
! determine block size
!
......
......@@ -119,8 +119,8 @@ CONTAINS
DO n=n_rank+1,lapw%nmat,n_size
DO nn=1,n
i=i+1
write(99,'(2(i10,1x),4(f15.4,1x))') n,nn,a(i)
write(98,'(2(i10,1x),4(f15.4,1x))') n,nn,b(i)
write(99,'(2(i10,1x),4(f15.8,1x))') n,nn,hamOvlp%a_c(i)
write(98,'(2(i10,1x),4(f15.8,1x))') n,nn,hamOvlp%b_c(i)
ENDDO
ENDDO
CALL MPI_BARRIER(MPI_COMM_WORLD,err)
......@@ -170,9 +170,9 @@ CONTAINS
#ifdef CPP_ELPA
CASE (diag_elpa)
IF (hamovlp%l_real) THEN
CALL elpa_diag(lapw%nmat,n,SUB_COMM,hamOvlp%a_r,hamOvlp%b_r,zMat%z_r,eig,ne_found)
CALL elpa_diag(lapw%nmat,SUB_COMM,hamOvlp%a_r,hamOvlp%b_r,zMat%z_r,eig,ne_found)
ELSE
CALL elpa_diag(lapw%nmat,n,SUB_COMM,hamOvlp%a_c,hamOvlp%b_c,zMat%z_c,eig,ne_found)
CALL elpa_diag(lapw%nmat,SUB_COMM,hamOvlp%a_c,hamOvlp%b_c,zMat%z_c,eig,ne_found)
ENDIF
#endif
#ifdef CPP_ELEMENTAL
......@@ -186,7 +186,7 @@ CONTAINS
#endif
#ifdef CPP_SCALAPACK
CASE (diag_scalapack)
CALL chani(lapw%nmat,dimension%nbasfcn/n_size,ndim, n_rank,n_size,SUB_COMM,mpi%mpi_comm,eig,ne_found,hamOvlp,zMat)
CALL chani(lapw%nmat,ndim, n_rank,n_size,SUB_COMM,mpi%mpi_comm,eig,ne_found,hamOvlp,zMat)
#endif
#ifdef CPP_MAGMA
CASE (diag_magma)
......
......@@ -28,7 +28,7 @@ CONTAINS
#define CPP_ZERO 0.0
#define CPP_mult mult_at_b_real
#define CPP_REAL
SUBROUTINE elpa_r(m,n, SUB_COMM, a,b, z,eig,num)
SUBROUTINE elpa_r(m, SUB_COMM, a,b, z,eig,num)
!
!----------------------------------------------------
!- Parallel eigensystem solver - driver routine based on chani; dw'12
......@@ -65,7 +65,7 @@ CONTAINS
#define CPP_ZERO cmplx(0.,0.)
#define CPP_mult mult_ah_b_complex
#undef CPP_REAL
SUBROUTINE elpa_c(m,n, SUB_COMM, a,b, z,eig,num)
SUBROUTINE elpa_c(m, SUB_COMM, a,b, z,eig,num)
!
!----------------------------------------------------
!- Parallel eigensystem solver - driver routine based on chani; dw'12
......
......@@ -13,7 +13,7 @@
IMPLICIT NONE
INCLUDE 'mpif.h'
INTEGER, INTENT (IN) :: m,n
INTEGER, INTENT (IN) :: m
INTEGER, INTENT (IN) :: SUB_COMM
INTEGER, INTENT (INOUT) :: num
REAL, INTENT (OUT) :: eig(:)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment