mirror of https://gitlab.com/QEF/q-e.git
parent
83d3287546
commit
aa10dc7765
|
@ -31,21 +31,23 @@ END INTERFACE
|
|||
INTERFACE pdiaghg
|
||||
SUBROUTINE laxlib_pcdiaghg( n, h, s, ldh, e, v, idesc )
|
||||
IMPLICIT NONE
|
||||
include 'laxlib_param.fh'
|
||||
include 'laxlib_kinds.fh'
|
||||
INTEGER, INTENT(IN) :: n, ldh
|
||||
COMPLEX(DP), INTENT(INOUT) :: h(ldh,ldh), s(ldh,ldh)
|
||||
REAL(DP), INTENT(OUT) :: e(n)
|
||||
COMPLEX(DP), INTENT(OUT) :: v(ldh,ldh)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
END SUBROUTINE
|
||||
SUBROUTINE laxlib_prdiaghg( n, h, s, ldh, e, v, idesc )
|
||||
IMPLICIT NONE
|
||||
include 'laxlib_param.fh'
|
||||
include 'laxlib_kinds.fh'
|
||||
INTEGER, INTENT(IN) :: n, ldh
|
||||
REAL(DP), INTENT(INOUT) :: h(ldh,ldh), s(ldh,ldh)
|
||||
REAL(DP), INTENT(OUT) :: e(n)
|
||||
REAL(DP), INTENT(OUT) :: v(ldh,ldh)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
!----------------------------------------------------------------------------
|
||||
|
@ -64,12 +66,13 @@ END INTERFACE
|
|||
INTERFACE laxlib_diagonalize
|
||||
SUBROUTINE diagonalize_parallel_x( n, rhos, rhod, s, idesc )
|
||||
IMPLICIT NONE
|
||||
include 'laxlib_param.fh'
|
||||
include 'laxlib_kinds.fh'
|
||||
REAL(DP), INTENT(IN) :: rhos(:,:) ! input symmetric matrix
|
||||
REAL(DP) :: rhod(:) ! output eigenvalues
|
||||
REAL(DP) :: s(:,:) ! output eigenvectors
|
||||
INTEGER, INTENT(IN) :: n ! size of the global matrix
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
END SUBROUTINE
|
||||
SUBROUTINE diagonalize_serial_x( n, rhos, rhod )
|
||||
IMPLICIT NONE
|
||||
|
|
|
@ -81,9 +81,10 @@ END INTERFACE
|
|||
SUBROUTINE distribute_lambda_x( lambda_repl, lambda_dist, idesc )
|
||||
IMPLICIT NONE
|
||||
include 'laxlib_kinds.fh'
|
||||
include 'laxlib_param.fh'
|
||||
REAL(DP), INTENT(IN) :: lambda_repl(:,:)
|
||||
REAL(DP), INTENT(OUT) :: lambda_dist(:,:)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
END SUBROUTINE distribute_lambda_x
|
||||
END INTERFACE
|
||||
|
||||
|
@ -91,9 +92,10 @@ END INTERFACE
|
|||
SUBROUTINE collect_lambda_x( lambda_repl, lambda_dist, idesc )
|
||||
IMPLICIT NONE
|
||||
include 'laxlib_kinds.fh'
|
||||
include 'laxlib_param.fh'
|
||||
REAL(DP), INTENT(OUT) :: lambda_repl(:,:)
|
||||
REAL(DP), INTENT(IN) :: lambda_dist(:,:)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
END SUBROUTINE collect_lambda_x
|
||||
END INTERFACE
|
||||
|
||||
|
@ -101,10 +103,11 @@ END INTERFACE
|
|||
SUBROUTINE setval_lambda_x( lambda_dist, i, j, val, idesc )
|
||||
IMPLICIT NONE
|
||||
include 'laxlib_kinds.fh'
|
||||
include 'laxlib_param.fh'
|
||||
REAL(DP), INTENT(OUT) :: lambda_dist(:,:)
|
||||
INTEGER, INTENT(IN) :: i, j
|
||||
REAL(DP), INTENT(IN) :: val
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
END SUBROUTINE setval_lambda_x
|
||||
END INTERFACE
|
||||
|
||||
|
@ -112,9 +115,10 @@ END INTERFACE
|
|||
SUBROUTINE distribute_zmat_x( zmat_repl, zmat_dist, idesc )
|
||||
IMPLICIT NONE
|
||||
include 'laxlib_kinds.fh'
|
||||
include 'laxlib_param.fh'
|
||||
REAL(DP), INTENT(IN) :: zmat_repl(:,:)
|
||||
REAL(DP), INTENT(OUT) :: zmat_dist(:,:)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
END SUBROUTINE distribute_zmat_x
|
||||
END INTERFACE
|
||||
|
||||
|
@ -122,9 +126,10 @@ END INTERFACE
|
|||
SUBROUTINE collect_zmat_x( zmat_repl, zmat_dist, idesc )
|
||||
IMPLICIT NONE
|
||||
include 'laxlib_kinds.fh'
|
||||
include 'laxlib_param.fh'
|
||||
REAL(DP), INTENT(OUT) :: zmat_repl(:,:)
|
||||
REAL(DP), INTENT(IN) :: zmat_dist(:,:)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
END SUBROUTINE collect_zmat_x
|
||||
END INTERFACE
|
||||
|
||||
|
@ -281,22 +286,24 @@ INTERFACE sqr_mm_cannon
|
|||
SUBROUTINE sqr_dmm_cannon_x( transa, transb, n, alpha, a, lda, b, ldb, beta, c, ldc, idesc )
|
||||
IMPLICIT NONE
|
||||
include 'laxlib_kinds.fh'
|
||||
include 'laxlib_param.fh'
|
||||
CHARACTER(LEN=1), INTENT(IN) :: transa, transb
|
||||
INTEGER, INTENT(IN) :: n
|
||||
REAL(DP), INTENT(IN) :: alpha, beta
|
||||
INTEGER, INTENT(IN) :: lda, ldb, ldc
|
||||
REAL(DP) :: a(lda,*), b(ldb,*), c(ldc,*)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
END SUBROUTINE
|
||||
SUBROUTINE sqr_zmm_cannon_x( transa, transb, n, alpha, a, lda, b, ldb, beta, c, ldc, idesc )
|
||||
IMPLICIT NONE
|
||||
include 'laxlib_kinds.fh'
|
||||
include 'laxlib_param.fh'
|
||||
CHARACTER(LEN=1), INTENT(IN) :: transa, transb
|
||||
INTEGER, INTENT(IN) :: n
|
||||
COMPLEX(DP), INTENT(IN) :: alpha, beta
|
||||
INTEGER, INTENT(IN) :: lda, ldb, ldc
|
||||
COMPLEX(DP) :: a(lda,*), b(ldb,*), c(ldc,*)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
|
||||
|
@ -304,10 +311,11 @@ INTERFACE sqr_tr_cannon
|
|||
SUBROUTINE sqr_tr_cannon_x( n, a, lda, b, ldb, idesc )
|
||||
IMPLICIT NONE
|
||||
include 'laxlib_kinds.fh'
|
||||
include 'laxlib_param.fh'
|
||||
INTEGER, INTENT(IN) :: n
|
||||
INTEGER, INTENT(IN) :: lda, ldb
|
||||
REAL(DP) :: a(lda,*), b(ldb,*)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
|
||||
|
@ -315,9 +323,10 @@ INTERFACE redist_row2col
|
|||
SUBROUTINE redist_row2col_x( n, a, b, ldx, nx, idesc )
|
||||
IMPLICIT NONE
|
||||
include 'laxlib_kinds.fh'
|
||||
include 'laxlib_param.fh'
|
||||
INTEGER, INTENT(IN) :: n
|
||||
INTEGER, INTENT(IN) :: ldx, nx
|
||||
REAL(DP) :: a(ldx,nx), b(ldx,nx)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
END SUBROUTINE
|
||||
END INTERFACE
|
||||
|
|
|
@ -1781,13 +1781,14 @@ SUBROUTINE sqr_dmm_cannon_x( transa, transb, n, alpha, a, lda, b, ldb, beta, c,
|
|||
!
|
||||
IMPLICIT NONE
|
||||
INCLUDE 'laxlib_kinds.fh'
|
||||
INCLUDE 'laxlib_param.fh'
|
||||
!
|
||||
CHARACTER(LEN=1), INTENT(IN) :: transa, transb
|
||||
INTEGER, INTENT(IN) :: n
|
||||
REAL(DP), INTENT(IN) :: alpha, beta
|
||||
INTEGER, INTENT(IN) :: lda, ldb, ldc
|
||||
REAL(DP) :: a(lda,*), b(ldb,*), c(ldc,*)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
!
|
||||
TYPE(la_descriptor) :: desc
|
||||
!
|
||||
|
@ -2084,13 +2085,14 @@ SUBROUTINE sqr_zmm_cannon_x( transa, transb, n, alpha, a, lda, b, ldb, beta, c,
|
|||
USE laxlib_parallel_include
|
||||
IMPLICIT NONE
|
||||
INCLUDE 'laxlib_kinds.fh'
|
||||
INCLUDE 'laxlib_param.fh'
|
||||
!
|
||||
CHARACTER(LEN=1), INTENT(IN) :: transa, transb
|
||||
INTEGER, INTENT(IN) :: n
|
||||
COMPLEX(DP), INTENT(IN) :: alpha, beta
|
||||
INTEGER, INTENT(IN) :: lda, ldb, ldc
|
||||
COMPLEX(DP) :: a(lda,*), b(ldb,*), c(ldc,*)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
!
|
||||
TYPE(la_descriptor) :: desc
|
||||
!
|
||||
|
@ -2396,7 +2398,7 @@ SUBROUTINE sqr_tr_cannon_x( n, a, lda, b, ldb, idesc )
|
|||
INTEGER, INTENT(IN) :: n
|
||||
INTEGER, INTENT(IN) :: lda, ldb
|
||||
REAL(DP) :: a(lda,*), b(ldb,*)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
!
|
||||
INTEGER :: ierr
|
||||
INTEGER :: np, rowid, colid
|
||||
|
@ -2531,7 +2533,7 @@ SUBROUTINE redist_row2col_x( n, a, b, ldx, nx, idesc )
|
|||
INTEGER, INTENT(IN) :: n
|
||||
INTEGER, INTENT(IN) :: ldx, nx
|
||||
REAL(DP) :: a(ldx,nx), b(ldx,nx)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
!
|
||||
INTEGER :: ierr
|
||||
INTEGER :: np, rowid, colid
|
||||
|
@ -4662,7 +4664,7 @@ END SUBROUTINE sqr_zsetmat_x
|
|||
include 'laxlib_param.fh'
|
||||
REAL(DP), INTENT(IN) :: lambda_repl(:,:)
|
||||
REAL(DP), INTENT(OUT) :: lambda_dist(:,:)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
INTEGER :: i, j, ic, ir
|
||||
IF( idesc(LAX_DESC_ACTIVE_NODE) > 0 ) THEN
|
||||
ir = idesc(LAX_DESC_IR)
|
||||
|
@ -4686,7 +4688,7 @@ END SUBROUTINE sqr_zsetmat_x
|
|||
include 'laxlib_param.fh'
|
||||
REAL(DP), INTENT(OUT) :: lambda_repl(:,:)
|
||||
REAL(DP), INTENT(IN) :: lambda_dist(:,:)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
INTEGER :: i, j, ic, ir, ierr
|
||||
lambda_repl = 0.0d0
|
||||
IF( idesc(LAX_DESC_ACTIVE_NODE) > 0 ) THEN
|
||||
|
@ -4715,7 +4717,7 @@ END SUBROUTINE sqr_zsetmat_x
|
|||
include 'laxlib_param.fh'
|
||||
REAL(DP), INTENT(OUT) :: zmat_repl(:,:)
|
||||
REAL(DP), INTENT(IN) :: zmat_dist(:,:)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
INTEGER :: i, ii, j, me, np, nrl, ierr
|
||||
zmat_repl = 0.0d0
|
||||
me = idesc(LAX_DESC_MYPE)
|
||||
|
@ -4746,7 +4748,7 @@ END SUBROUTINE sqr_zsetmat_x
|
|||
REAL(DP), INTENT(OUT) :: lambda_dist(:,:)
|
||||
INTEGER, INTENT(IN) :: i, j
|
||||
REAL(DP), INTENT(IN) :: val
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
INTEGER :: ir, ic
|
||||
IF( idesc(LAX_DESC_ACTIVE_NODE) > 0 ) THEN
|
||||
ir = idesc(LAX_DESC_IR)
|
||||
|
@ -4768,7 +4770,7 @@ END SUBROUTINE sqr_zsetmat_x
|
|||
include 'laxlib_param.fh'
|
||||
REAL(DP), INTENT(IN) :: zmat_repl(:,:)
|
||||
REAL(DP), INTENT(OUT) :: zmat_dist(:,:)
|
||||
INTEGER, INTENT(IN) :: idesc(:)
|
||||
INTEGER, INTENT(IN) :: idesc(LAX_DESC_SIZE)
|
||||
INTEGER :: i, ii, j, me, np
|
||||
me = idesc(LAX_DESC_MYPE)
|
||||
np = idesc(LAX_DESC_NPC) * idesc(LAX_DESC_NPR)
|
||||
|
|
Loading…
Reference in New Issue