mirror of https://gitlab.com/QEF/q-e.git
- adding missing interfaces for non scalapack build
This commit is contained in:
parent
004301add1
commit
188e125b66
|
@ -215,6 +215,7 @@ SUBROUTINE laxlib_pcdiaghg( n, h, s, ldh, e, v, idesc )
|
|||
IMPLICIT NONE
|
||||
!
|
||||
include 'laxlib_param.fh'
|
||||
include 'laxlib_mid.fh'
|
||||
include 'laxlib_low.fh'
|
||||
!
|
||||
INTEGER, INTENT(IN) :: n, ldh
|
||||
|
@ -280,7 +281,7 @@ SUBROUTINE laxlib_pcdiaghg( n, h, s, ldh, e, v, idesc )
|
|||
|
||||
IF( info /= 0 ) CALL lax_error__( ' cdiaghg ', ' problems computing cholesky ', ABS( info ) )
|
||||
#else
|
||||
CALL qe_pzpotrf( ss, nx, n, desc )
|
||||
CALL qe_pzpotrf( ss, nx, n, idesc )
|
||||
#endif
|
||||
!
|
||||
END IF
|
||||
|
@ -303,7 +304,7 @@ SUBROUTINE laxlib_pcdiaghg( n, h, s, ldh, e, v, idesc )
|
|||
!
|
||||
IF( info /= 0 ) CALL lax_error__( ' cdiaghg ', ' problems computing inverse ', ABS( info ) )
|
||||
#else
|
||||
CALL qe_pztrtri( ss, nx, n, desc )
|
||||
CALL qe_pztrtri( ss, nx, n, idesc )
|
||||
#endif
|
||||
!
|
||||
END IF
|
||||
|
|
|
@ -32,3 +32,47 @@ SUBROUTINE qe_pzheevd_x( tv, n, idesc, hh, ldh, e )
|
|||
REAL(DP) :: e( n )
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
|
||||
INTERFACE qe_pzpotrf
|
||||
SUBROUTINE qe_pzpotrf_x( sll, ldx, n, idesc )
|
||||
implicit none
|
||||
include 'laxlib_param.fh'
|
||||
INTEGER, PARAMETER :: DP = selected_real_kind(14,200)
|
||||
integer :: n, ldx
|
||||
integer, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
complex(DP) :: sll( ldx, ldx )
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
|
||||
INTERFACE qe_pdpotrf
|
||||
SUBROUTINE qe_pdpotrf_x( sll, ldx, n, idesc )
|
||||
implicit none
|
||||
include 'laxlib_param.fh'
|
||||
INTEGER, PARAMETER :: DP = selected_real_kind(14,200)
|
||||
integer :: n, ldx
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
REAL(DP) :: sll( ldx, ldx )
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
|
||||
INTERFACE qe_pztrtri
|
||||
SUBROUTINE qe_pztrtri_x ( sll, ldx, n, idesc )
|
||||
implicit none
|
||||
include 'laxlib_param.fh'
|
||||
INTEGER, PARAMETER :: DP = selected_real_kind(14,200)
|
||||
INTEGER, INTENT( IN ) :: n, ldx
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
COMPLEX(DP), INTENT( INOUT ) :: sll( ldx, ldx )
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
|
||||
INTERFACE qe_pdtrtri
|
||||
SUBROUTINE qe_pdtrtri_x ( sll, ldx, n, idesc )
|
||||
implicit none
|
||||
include 'laxlib_param.fh'
|
||||
INTEGER, PARAMETER :: DP = selected_real_kind(14,200)
|
||||
INTEGER, INTENT( IN ) :: n, ldx
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
REAL(DP), INTENT( INOUT ) :: sll( ldx, ldx )
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
|
|
|
@ -3178,15 +3178,17 @@ END SUBROUTINE blk2cyc_zredist_x
|
|||
!
|
||||
!
|
||||
|
||||
SUBROUTINE qe_pzpotrf_x( sll, ldx, n, desc )
|
||||
SUBROUTINE qe_pzpotrf_x( sll, ldx, n, idesc )
|
||||
!
|
||||
USE descriptors
|
||||
USE la_param
|
||||
!
|
||||
implicit none
|
||||
!
|
||||
include 'laxlib_param.fh'
|
||||
!
|
||||
integer :: n, ldx
|
||||
TYPE(la_descriptor), INTENT(IN) :: desc
|
||||
integer, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
real(DP) :: one, zero
|
||||
complex(DP) :: sll( ldx, ldx ), cone, czero
|
||||
integer :: myrow, mycol, ierr
|
||||
|
@ -3197,6 +3199,7 @@ SUBROUTINE qe_pzpotrf_x( sll, ldx, n, desc )
|
|||
integer :: nr, nc
|
||||
integer :: rcomm, ccomm, color, key, myid, np
|
||||
complex(DP), allocatable :: ssnd( :, : ), srcv( :, : )
|
||||
TYPE(la_descriptor) :: desc
|
||||
|
||||
one = 1.0_DP
|
||||
cone = 1.0_DP
|
||||
|
@ -3205,6 +3208,8 @@ SUBROUTINE qe_pzpotrf_x( sll, ldx, n, desc )
|
|||
|
||||
#if defined __MPI
|
||||
|
||||
CALL laxlib_intarray_to_desc(desc,idesc)
|
||||
|
||||
myrow = desc%myr
|
||||
mycol = desc%myc
|
||||
myid = desc%mype
|
||||
|
@ -3407,15 +3412,17 @@ END SUBROUTINE qe_pzpotrf_x
|
|||
|
||||
! now the Double Precision subroutine
|
||||
|
||||
SUBROUTINE qe_pdpotrf_x( sll, ldx, n, desc )
|
||||
SUBROUTINE qe_pdpotrf_x( sll, ldx, n, idesc )
|
||||
!
|
||||
USE descriptors
|
||||
USE la_param
|
||||
!
|
||||
implicit none
|
||||
!
|
||||
include 'laxlib_param.fh'
|
||||
!
|
||||
integer :: n, ldx
|
||||
TYPE(la_descriptor), INTENT(IN) :: desc
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
REAL(DP) :: one, zero
|
||||
REAL(DP) :: sll( ldx, ldx )
|
||||
integer :: myrow, mycol, ierr
|
||||
|
@ -3426,12 +3433,15 @@ SUBROUTINE qe_pdpotrf_x( sll, ldx, n, desc )
|
|||
integer :: nr, nc
|
||||
integer :: rcomm, ccomm, color, key, myid, np
|
||||
REAL(DP), ALLOCATABLE :: ssnd( :, : ), srcv( :, : )
|
||||
TYPE(la_descriptor) :: desc
|
||||
|
||||
one = 1.0_DP
|
||||
zero = 0.0_DP
|
||||
|
||||
#if defined __MPI
|
||||
|
||||
CALL laxlib_intarray_to_desc(desc,idesc)
|
||||
|
||||
myrow = desc%myr
|
||||
mycol = desc%myc
|
||||
myid = desc%mype
|
||||
|
@ -3634,7 +3644,7 @@ END SUBROUTINE qe_pdpotrf_x
|
|||
!
|
||||
!
|
||||
|
||||
SUBROUTINE qe_pztrtri_x ( sll, ldx, n, desc )
|
||||
SUBROUTINE qe_pztrtri_x ( sll, ldx, n, idesc )
|
||||
|
||||
! pztrtri computes the parallel inversion of a lower triangular matrix
|
||||
! distribuited among the processes using a 2-D block partitioning.
|
||||
|
@ -3667,9 +3677,10 @@ SUBROUTINE qe_pztrtri_x ( sll, ldx, n, desc )
|
|||
USE la_param
|
||||
|
||||
IMPLICIT NONE
|
||||
INCLUDE 'laxlib_param.fh'
|
||||
|
||||
INTEGER, INTENT( IN ) :: n, ldx
|
||||
TYPE(la_descriptor), INTENT(IN) :: desc
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
COMPLEX(DP), INTENT( INOUT ) :: sll( ldx, ldx )
|
||||
|
||||
COMPLEX(DP), PARAMETER :: ONE = (1.0_DP, 0.0_DP)
|
||||
|
@ -3692,7 +3703,9 @@ SUBROUTINE qe_pztrtri_x ( sll, ldx, n, desc )
|
|||
! B and BUF_RECV are used to overload the computation of matrix multiplication and the shift of the blocks
|
||||
COMPLEX(DP), ALLOCATABLE, DIMENSION( :, : ) :: B, C, BUF_RECV
|
||||
COMPLEX(DP) :: first
|
||||
TYPE(la_descriptor) :: desc
|
||||
|
||||
CALL laxlib_intarray_to_desc(desc,idesc)
|
||||
myrow = desc%myr
|
||||
mycol = desc%myc
|
||||
myid = desc%mype
|
||||
|
@ -3994,7 +4007,7 @@ END SUBROUTINE qe_pztrtri_x
|
|||
|
||||
! now the Double Precision subroutine
|
||||
|
||||
SUBROUTINE qe_pdtrtri_x ( sll, ldx, n, desc )
|
||||
SUBROUTINE qe_pdtrtri_x ( sll, ldx, n, idesc )
|
||||
|
||||
! pztrtri computes the parallel inversion of a lower triangular matrix
|
||||
! distribuited among the processes using a 2-D block partitioning.
|
||||
|
@ -4027,9 +4040,10 @@ SUBROUTINE qe_pdtrtri_x ( sll, ldx, n, desc )
|
|||
USE la_param
|
||||
|
||||
IMPLICIT NONE
|
||||
include 'laxlib_param.fh'
|
||||
|
||||
INTEGER, INTENT( IN ) :: n, ldx
|
||||
TYPE(la_descriptor), INTENT(IN) :: desc
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
REAL(DP), INTENT( INOUT ) :: sll( ldx, ldx )
|
||||
|
||||
REAL(DP), PARAMETER :: ONE = 1.0_DP
|
||||
|
@ -4052,6 +4066,9 @@ SUBROUTINE qe_pdtrtri_x ( sll, ldx, n, desc )
|
|||
! B and BUF_RECV are used to overload the computation of matrix multiplication and the shift of the blocks
|
||||
REAL(DP), ALLOCATABLE, DIMENSION( :, : ) :: B, C, BUF_RECV
|
||||
REAL(DP) :: first
|
||||
TYPE(la_descriptor) :: desc
|
||||
|
||||
CALL laxlib_intarray_to_desc(desc,idesc)
|
||||
|
||||
myrow = desc%myr
|
||||
mycol = desc%myc
|
||||
|
|
|
@ -204,6 +204,7 @@ SUBROUTINE laxlib_prdiaghg( n, h, s, ldh, e, v, idesc )
|
|||
!
|
||||
include 'laxlib_param.fh'
|
||||
include 'laxlib_low.fh'
|
||||
include 'laxlib_mid.fh'
|
||||
!
|
||||
INTEGER, INTENT(IN) :: n, ldh
|
||||
! dimension of the matrix to be diagonalized and number of eigenstates to be calculated
|
||||
|
@ -270,7 +271,7 @@ SUBROUTINE laxlib_prdiaghg( n, h, s, ldh, e, v, idesc )
|
|||
CALL PDPOTRF( 'L', n, ss, 1, 1, desch, info )
|
||||
IF( info /= 0 ) CALL lax_error__( ' rdiaghg ', ' problems computing cholesky ', ABS( info ) )
|
||||
#else
|
||||
CALL qe_pdpotrf( ss, nx, n, desc )
|
||||
CALL qe_pdpotrf( ss, nx, n, idesc )
|
||||
#endif
|
||||
!
|
||||
END IF
|
||||
|
@ -291,7 +292,7 @@ SUBROUTINE laxlib_prdiaghg( n, h, s, ldh, e, v, idesc )
|
|||
!
|
||||
IF( info /= 0 ) CALL lax_error__( ' rdiaghg ', ' problems computing inverse ', ABS( info ) )
|
||||
#else
|
||||
CALL qe_pdtrtri ( ss, nx, n, desc )
|
||||
CALL qe_pdtrtri ( ss, nx, n, idesc )
|
||||
#endif
|
||||
!
|
||||
END IF
|
||||
|
@ -325,7 +326,7 @@ SUBROUTINE laxlib_prdiaghg( n, h, s, ldh, e, v, idesc )
|
|||
#if defined(__SCALAPACK)
|
||||
CALL pdsyevd_drv( .true., n, desc%nrcx, hh, SIZE(hh,1), e, ortho_cntx, ortho_comm )
|
||||
#else
|
||||
CALL qe_pdsyevd( .true., n, desc, hh, SIZE(hh,1), e )
|
||||
CALL qe_pdsyevd( .true., n, idesc, hh, SIZE(hh,1), e )
|
||||
#endif
|
||||
!
|
||||
END IF
|
||||
|
|
Loading…
Reference in New Issue