mirror of https://gitlab.com/QEF/q-e.git
Now possible to link statically latest ELPA (ELPA 2013.11-v8) compiled for a specific architecture. Both single- and multi-threaded version supported.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@11042 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
parent
623894c595
commit
89ce939d5d
|
@ -653,7 +653,7 @@ CONTAINS
|
|||
USE mp_bands, ONLY: nproc_bgrp, me_bgrp, intra_bgrp_comm, root_bgrp
|
||||
USE mp_diag, ONLY: ortho_comm
|
||||
USE mp, ONLY: mp_comm_free
|
||||
#ifdef __ELPA
|
||||
#if defined(__ELPA)
|
||||
USE elpa1
|
||||
#endif
|
||||
IMPLICIT NONE
|
||||
|
@ -677,7 +677,7 @@ CONTAINS
|
|||
INTEGER :: LWORK, LIWORK, info
|
||||
CHARACTER :: jobv
|
||||
INTEGER :: i
|
||||
#ifdef __ELPA
|
||||
#if defined(__ELPA)
|
||||
INTEGER :: nprow,npcol,my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols
|
||||
#endif
|
||||
|
||||
|
@ -700,10 +700,11 @@ CONTAINS
|
|||
itmp = 0
|
||||
rtmp = 0.0_DP
|
||||
|
||||
#ifdef __ELPA
|
||||
#if defined(__ELPA)
|
||||
CALL BLACS_Gridinfo(ortho_cntx,nprow, npcol, my_prow,my_pcol)
|
||||
CALL GET_ELPA_ROW_COL_COMMS(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
|
||||
CALL SOLVE_EVP_REAL(n, n, s, lds, w, vv, lds ,nb ,mpi_comm_rows, mpi_comm_cols)
|
||||
CALL get_elpa_row_col_comms(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
|
||||
CALL solve_evp_real(n, n, s, lds, w, vv, lds ,nb ,mpi_comm_rows, mpi_comm_cols)
|
||||
|
||||
IF( tv ) s = vv
|
||||
IF( ALLOCATED( vv ) ) DEALLOCATE( vv )
|
||||
|
||||
|
@ -731,24 +732,6 @@ CONTAINS
|
|||
DEALLOCATE( iwork )
|
||||
#endif
|
||||
|
||||
!#ifdef __ELPA ! uncomment only if you want to printout eigenv* for debug
|
||||
! ! purposes
|
||||
! ALLOCATE ( work (n) )
|
||||
! CALL PDLAPRNT( N, N, s, 1, 1, desch, 0, 0, 's', 99, WORK )
|
||||
! DO i=1,N
|
||||
! WRITE(88,*)i,w(i)
|
||||
! END DO
|
||||
! DEALLOCATE( work )
|
||||
!#else
|
||||
! ALLOCATE ( work (n) )
|
||||
! write(*,*)n
|
||||
! CALL PDLAPRNT( N, N, s, 1, 1, desch, 0, 0, 's', 100, WORK )
|
||||
! DO i=1,N
|
||||
! WRITE(200,*)i,w(i)
|
||||
! END DO
|
||||
! DEALLOCATE( work )
|
||||
!#endif
|
||||
|
||||
RETURN
|
||||
END SUBROUTINE pdsyevd_drv
|
||||
|
||||
|
|
|
@ -1464,7 +1464,7 @@ CONTAINS
|
|||
USE kinds, ONLY : DP
|
||||
USE mp_diag, ONLY : ortho_comm
|
||||
USE mp, ONLY : mp_comm_free
|
||||
#ifdef __ELPA
|
||||
#if defined(__ELPA)
|
||||
USE elpa1
|
||||
#endif
|
||||
IMPLICIT NONE
|
||||
|
@ -1489,7 +1489,7 @@ CONTAINS
|
|||
INTEGER :: LWORK, LRWORK, LIWORK
|
||||
INTEGER :: desch( 10 ), info
|
||||
CHARACTER :: jobv
|
||||
#ifdef __ELPA
|
||||
#if defined(__ELPA)
|
||||
INTEGER :: nprow,npcol,my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols
|
||||
#endif
|
||||
|
||||
|
@ -1502,12 +1502,11 @@ CONTAINS
|
|||
END IF
|
||||
|
||||
call descinit( desch, n, n, nb, nb, 0, 0, ortho_cntx, size(h,1), info )
|
||||
#ifdef __ELPA
|
||||
|
||||
#if defined(__ELPA)
|
||||
CALL BLACS_Gridinfo( ortho_cntx, nprow, npcol, my_prow, my_pcol )
|
||||
|
||||
call GET_ELPA_ROW_COL_COMMS(ortho_comm, my_prow, my_pcol,mpi_comm_rows,mpi_comm_cols)
|
||||
|
||||
call solve_evp_complex(n, n, h, size(h,1), w, v, size(h,1), nb, &
|
||||
CALL get_elpa_row_col_comms(ortho_comm, my_prow, my_pcol,mpi_comm_rows,mpi_comm_cols)
|
||||
CALL solve_evp_complex(n, n, h, size(h,1), w, v, size(h,1), nb, &
|
||||
mpi_comm_rows, mpi_comm_cols)
|
||||
h = v
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ PROGRAM pwscf
|
|||
CALL run_pwscf ( exit_status )
|
||||
!
|
||||
CALL stop_run( exit_status )
|
||||
CALL do_stop( exit_status )
|
||||
!CALL do_stop( exit_status )
|
||||
!
|
||||
STOP
|
||||
!
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1975,14 +1975,20 @@ fi
|
|||
fi
|
||||
done
|
||||
|
||||
# ELPA iff SCALAPACK
|
||||
# ELPA iff SCALAPACK (statically linked)
|
||||
elpa_libs_switch="disabled"
|
||||
if test "$with_elpa" -eq 2 && test "$have_scalapack" -eq 1; then
|
||||
scalapack_libs="-L$with_elpa_path/lib -lelpa $scalapack_libs"
|
||||
# ELPA includes for FORTRAN, works with 2013.08
|
||||
try_iflags="$try_iflags -I$with_elpa_path/include -I$with_elpa_path/include/elpa/modules "
|
||||
try_dflags="$try_dflags -D__ELPA"
|
||||
if test "$use_openmp" -eq 1 ; then
|
||||
scalapack_libs="$with_elpa_path/lib/libelpa_mt.a $scalapack_libs"
|
||||
try_iflags="$try_iflags -I$with_elpa_path/include/elpa/modules "
|
||||
try_dflags="$try_dflags -D__ELPA"
|
||||
else
|
||||
scalapack_libs="$with_elpa_path/libelpa.a $scalapack_libs"
|
||||
try_iflags="$try_iflags -I$with_elpa_path/include/elpa/modules "
|
||||
try_dflags="$try_dflags -D__ELPA"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$with_elpa" -eq 1 && test "$have_scalapack" -eq 1; then
|
||||
scalapack_libs="\$(TOPDIR)/ELPA/libelpa.a $scalapack_libs"
|
||||
try_dflags="$try_dflags -D__ELPA"
|
||||
|
|
Loading…
Reference in New Issue