mirror of https://gitlab.com/QEF/q-e.git
Modified ELPA calls to comply with new library API. Supported 2015.11.001
(__ELPA_2015) and 2016.05.003 (__ELPA_2016). Link must be done manually (for now). Validated using PW AUSURF112 (GAMMA), PW AUSURF112 (K) ans PW GRIR443. CP tests to be done. Internal self-compiled ELPA very old still present but it will be deprecated soon. git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12942 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
parent
1a4be92da9
commit
ad5e1bf29e
|
@ -18,6 +18,7 @@ New in 6.0 version:
|
|||
* EPW: The test-farm now checks 5 representative examples and the associated
|
||||
accuracy
|
||||
* Netlib LAPACK updated, easy to update going forward
|
||||
* Added support to modern ELPA (2016.05 and 2015.11)
|
||||
|
||||
Fixed in 6.0 version:
|
||||
|
||||
|
|
|
@ -664,11 +664,12 @@ CONTAINS
|
|||
#if defined __SCALAPACK
|
||||
|
||||
SUBROUTINE pdsyevd_drv( tv, n, nb, s, lds, w, ortho_cntx, ortho_comm )
|
||||
#if defined(__ELPA)
|
||||
USE elpa1
|
||||
!
|
||||
#if defined(__ELPA) || defined(__ELPA_2016) || defined(__ELPA_2015)
|
||||
use elpa1
|
||||
#endif
|
||||
IMPLICIT NONE
|
||||
|
||||
!
|
||||
LOGICAL, INTENT(IN) :: tv
|
||||
! if tv is true compute eigenvalues and eigenvectors (not used)
|
||||
INTEGER, INTENT(IN) :: nb, n, ortho_cntx, ortho_comm
|
||||
|
@ -689,8 +690,11 @@ CONTAINS
|
|||
INTEGER :: LWORK, LIWORK, info
|
||||
CHARACTER :: jobv
|
||||
INTEGER :: i, ierr
|
||||
#if defined(__ELPA)
|
||||
#if defined(__ELPA) || defined(__ELPA_2016) || defined(__ELPA_2015)
|
||||
INTEGER :: nprow,npcol,my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols
|
||||
#if defined(__ELPA_2016)
|
||||
LOGICAL :: success
|
||||
#endif
|
||||
#endif
|
||||
|
||||
IF( SIZE( s, 1 ) /= lds ) &
|
||||
|
@ -712,11 +716,20 @@ CONTAINS
|
|||
itmp = 0
|
||||
rtmp = 0.0_DP
|
||||
|
||||
#if defined(__ELPA)
|
||||
#if defined(__ELPA) || defined(__ELPA_2016) || defined(__ELPA_2015)
|
||||
CALL BLACS_Gridinfo(ortho_cntx,nprow, npcol, my_prow,my_pcol)
|
||||
|
||||
#if defined(__ELPA_2016)
|
||||
success = get_elpa_row_col_comms(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
|
||||
success = solve_evp_real_1stage(n, n, s, lds, w, vv, lds,SIZE(s,2),nb ,mpi_comm_rows, mpi_comm_cols)
|
||||
#elif defined(__ELPA_2015)
|
||||
ierr = get_elpa_row_col_comms(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
|
||||
ierr = solve_evp_real(n, n, s, lds, w, vv, lds,SIZE(s,2),nb ,mpi_comm_rows, mpi_comm_cols)
|
||||
#elif defined(__ELPA)
|
||||
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)
|
||||
|
||||
#endif
|
||||
|
||||
IF( tv ) s = vv
|
||||
IF( ALLOCATED( vv ) ) DEALLOCATE( vv )
|
||||
|
||||
|
|
|
@ -1520,11 +1520,14 @@ CONTAINS
|
|||
|
||||
#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, &
|
||||
mpi_comm_rows, mpi_comm_cols)
|
||||
h = v
|
||||
!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)
|
||||
ierr = get_elpa_row_col_comms(ortho_comm, my_prow, my_pcol,mpi_comm_rows, mpi_comm_cols)
|
||||
ierr = solve_evp_complex(n, n, h, size(h,1), w, v, size(h,1), size(h,2), nb, &
|
||||
mpi_comm_rows, mpi_comm_cols)
|
||||
|
||||
h = v
|
||||
|
||||
#if defined __MPI
|
||||
CALL mpi_comm_free( mpi_comm_rows, ierr )
|
||||
|
|
|
@ -712,7 +712,7 @@ LOGICAL FUNCTION check_para_diag( nbnd )
|
|||
ELSE
|
||||
CALL errore( 'setup','Unexpected sub-group communicator ', 1 )
|
||||
END IF
|
||||
#if defined(__ELPA)
|
||||
#if defined(__ELPA) || defined(__ELPA_2015) || defined(__ELPA_2016)
|
||||
WRITE( stdout, '(5X,"ELPA distributed-memory algorithm ", &
|
||||
& "(size of sub-group: ", I2, "*", I3, " procs)",/)') &
|
||||
np_ortho(1), np_ortho(2)
|
||||
|
|
Loading…
Reference in New Issue