Commit 7a2a52d9 authored by Matthias Redies's avatar Matthias Redies

add another use of calc_cmt

parent d906df84
......@@ -91,7 +91,8 @@
call read_z(atoms, cell, hybdat, kpts, sym, noco, input, ikpt, &
jsp, z(ikpt), c_phase)
call calc_cmt(atoms, cell, input, noco, hybinp, hybdat, mpdata, kpts, &
sym, oneD, z(kpts%bkp(ikpt)), jsp, ikpt, c_phase, cmt(:,:,:,ikpt))
sym, oneD, z(kpts%bkp(ikpt)), jsp, ikpt, c_phase, &
cmt(:hybdat%nbands(ikpt),:,:,ikpt))
END DO
IF (mpi%irank == 0) WRITE (6, '(/A)') ' Overlap <core|core>'
......
......@@ -19,15 +19,17 @@ MODULE m_exchange_core
USE m_types_hybdat
CONTAINS
SUBROUTINE exchange_vccv1(nk, input,atoms, mpdata, hybinp, hybdat, jsp, lapw, &
SUBROUTINE exchange_vccv1(nk, input,atoms, cell, kpts, sym, noco, oneD,&
mpdata, hybinp, hybdat, jsp, lapw, &
nsymop, nsest, indx_sest, mpi, a_ex, results, mat_ex)
use m_wavefproducts_aux
USE m_constants
USE m_util
use m_intgrf
USE m_wrapper
USE m_types
USE m_io_hybinp
use m_calc_cmt
IMPLICIT NONE
TYPE(t_input),INTENT(IN):: input
TYPE(t_hybdat), INTENT(IN) :: hybdat
......@@ -36,6 +38,11 @@ CONTAINS
TYPE(t_mpdata), intent(in) :: mpdata
TYPE(t_hybinp), INTENT(IN) :: hybinp
TYPE(t_atoms), INTENT(IN) :: atoms
type(t_cell), intent(in) :: cell
type(t_kpts), intent(in) :: kpts
type(t_sym), intent(in) :: sym
type(t_noco), intent(in) :: noco
type(t_oneD), intent(in) :: oneD
TYPE(t_lapw), INTENT(IN) :: lapw
! -scalars -
......@@ -60,19 +67,27 @@ CONTAINS
INTEGER, ALLOCATABLE :: larr(:), larr2(:)
INTEGER, ALLOCATABLE :: parr(:), parr2(:)
integer :: nbasfcn
REAL :: integrand(atoms%jmtd)
REAL :: primf1(atoms%jmtd), primf2(atoms%jmtd)
REAL, ALLOCATABLE :: fprod(:, :), fprod2(:, :)
REAL, ALLOCATABLE :: integral(:, :)
COMPLEX :: cmt(input%neig, hybdat%maxlmindx, atoms%nat)
COMPLEX :: cmt(hybdat%nbands(nk), hybdat%maxlmindx, atoms%nat)
COMPLEX :: exchange(hybdat%nbands(nk), hybdat%nbands(nk))
COMPLEX, ALLOCATABLE :: carr(:, :), carr2(:, :), carr3(:, :)
complex :: c_phase(hybdat%nbands(nk))
COMPLEX, ALLOCATABLE :: carr(:, :), carr2(:, :), carr3(:, :)
type(t_mat) :: zmat
! read in mt wavefunction coefficients from file cmt
CALL read_cmt(cmt, nk)
nbasfcn = calc_number_of_basis_functions(lapw, atoms, noco)
CALL zmat%init(sym%invs, nbasfcn, hybdat%nbands(kpts%bkp(nk)))
call read_z(atoms, cell, hybdat, kpts, sym, noco, input, kpts%bkp(nk), jsp, zmat, c_phase)
call calc_cmt(atoms, cell, input, noco, hybinp, hybdat, mpdata, kpts, &
sym, oneD, zmat, jsp, nk, c_phase, cmt)
call zmat%free()
!CALL read_cmt(cmt, nk)
allocate(fprod(atoms%jmtd, 5), larr(5), parr(5))
......
......@@ -175,7 +175,9 @@ CONTAINS
IF (xcpot%is_name("hse") .OR. xcpot%is_name("vhse")) THEN
call judft_error('HSE not implemented in hsfock')
ELSE
CALL exchange_vccv1(nk, input,atoms, mpdata, hybinp, hybdat, jsp, lapw, nsymop, nsest, indx_sest, mpi, a_ex, results, ex)
CALL exchange_vccv1(nk, input,atoms,cell, kpts, sym, noco, oneD, &
mpdata, hybinp, hybdat, jsp, &
lapw, nsymop, nsest, indx_sest, mpi, a_ex, results, ex)
CALL exchange_cccc(nk, atoms, hybdat, ncstd, sym, kpts, a_ex, results)
END IF
......
......@@ -537,7 +537,9 @@ SUBROUTINE rdmft(eig_id,mpi,input,kpts,banddos,sliceplot,cell,atoms,enpara,stars
CALL exchange_valence_hf(ikpt,kpts,nkpt_EIBZ, sym,atoms,mpdata,hybinp,cell,input,jspin,hybdat,mnobd,lapw,&
oneD,eig_irr,results,pointer_EIBZ,n_q,wl_iks,xcpot,noco,nsest,indx_sest,&
mpi,exMat)
CALL exchange_vccv1(ikpt,input,atoms,mpdata,hybinp,hybdat,jspin,lapw,nsymop,nsest,indx_sest,mpi,1.0,results,exMat)
CALL exchange_vccv1(ikpt,input,atoms,cell, kpts, sym, noco, oneD,&
mpdata,hybinp,hybdat,jspin,lapw,nsymop,nsest,indx_sest,mpi,&
1.0,results,exMat)
!Start of workaround for increased functionality of symmetrizeh (call it))
......
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