Commit f997c42b authored by degironc's avatar degironc

set_dbecsum_nc and set_int3_nc extracted from PHonon/PH/set_int12_nc.f90 and...

set_dbecsum_nc and set_int3_nc extracted from PHonon/PH/set_int12_nc.f90 and moved to LR_Modules as separated files
transform_dbecsum_so.f90 and transform_dbecsum_nc.f90 appendened to set_dbecsum_nc.f90 that calls them
transform_int3_so extracted from PHonon/PH/transform_int_so.f90 and appended to set_int3_nc.f90 that calls it
transform_int3_nc extracted from PHonon/PH/transform_int_nc.f90 and appended to set_int3_nc.f90 that calls it
dependencies updated



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12047 c92efa57-630b-4861-b058-cf58834340f0
parent 521686bb
......@@ -19,6 +19,8 @@ h_psiq.o \
newdq.o \
orthogonalize.o \
setup_nscf.o \
set_dbecsum_nc.o \
set_int3_nc.o \
smallgq.o \
lrcom.o
......
......@@ -86,6 +86,17 @@ orthogonalize.o : ../Modules/recvec.o
orthogonalize.o : ../Modules/uspp.o
orthogonalize.o : ../PW/src/pwcom.o
orthogonalize.o : lrcom.o
set_dbecsum_nc.o : ../Modules/ions_base.o
set_dbecsum_nc.o : ../Modules/kind.o
set_dbecsum_nc.o : ../Modules/noncol.o
set_dbecsum_nc.o : ../Modules/uspp.o
set_dbecsum_nc.o : ../PW/src/pwcom.o
set_int3_nc.o : ../Modules/ions_base.o
set_int3_nc.o : ../Modules/kind.o
set_int3_nc.o : ../Modules/noncol.o
set_int3_nc.o : ../Modules/uspp.o
set_int3_nc.o : ../PW/src/pwcom.o
set_int3_nc.o : lrcom.o
setup_nscf.o : ../Modules/cell_base.o
setup_nscf.o : ../Modules/constants.o
setup_nscf.o : ../Modules/control_flags.o
......
!
! Copyright (C) 2006 Quantum ESPRESSO group
! Copyright (C) 2007-2016 Quantum ESPRESSO group
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!----------------------------------------------------------------------------
SUBROUTINE set_dbecsum_nc(dbecsum_nc, dbecsum, npe)
!----------------------------------------------------------------------------
USE kinds, ONLY : DP
USE ions_base, ONLY : nat, ntyp => nsp, ityp
USE uspp_param, only: upf, nhm
USE noncollin_module, ONLY : nspin_mag
USE lsda_mod, ONLY : nspin
IMPLICIT NONE
INTEGER :: npe
INTEGER :: np, na
COMPLEX(DP), INTENT(IN) :: dbecsum_nc( nhm, nhm, nat, nspin, npe)
COMPLEX(DP), INTENT(OUT) :: dbecsum( nhm*(nhm+1)/2, nat, nspin_mag, npe)
DO np = 1, ntyp
IF ( upf(np)%tvanp ) THEN
DO na = 1, nat
IF (ityp(na)==np) THEN
IF (upf(np)%has_so) THEN
CALL transform_dbecsum_so(dbecsum_nc,dbecsum,na, npe)
ELSE
CALL transform_dbecsum_nc(dbecsum_nc,dbecsum,na, npe)
END IF
END IF
END DO
END IF
END DO
RETURN
END SUBROUTINE set_dbecsum_nc
!
!----------------------------------------------------------------------------
SUBROUTINE transform_dbecsum_so(dbecsum_nc,dbecsum,na,modes)
!----------------------------------------------------------------------------
!
! This routine multiply dbecsum_nc by the identity and the Pauli
! matrices, rotate it as appropriate for the spin-orbit case
! and saves it in dbecsum to use it in the calculation of
! the charge and magnetization.
!
USE kinds, ONLY : DP
USE ions_base, ONLY : nat, ntyp => nsp, ityp
USE uspp_param, ONLY : nh, nhm
USE lsda_mod, ONLY : nspin
USE uspp, ONLY : ijtoh
USE noncollin_module, ONLY : npol, nspin_mag
USE spin_orb, ONLY : fcoef, domag
!
IMPLICIT NONE
INTEGER :: na, modes
COMPLEX(DP) :: dbecsum_nc( nhm, nhm, nat, nspin, modes)
COMPLEX(DP) :: dbecsum( nhm*(nhm+1)/2, nat, nspin_mag, modes)
!
! ... local variables
!
INTEGER :: ih, jh, lh, kh, ijh, np, is1, is2, ijs, mode
COMPLEX(DP) :: fac
LOGICAL :: same_lj
np=ityp(na)
DO mode=1,modes
DO ih = 1, nh(np)
DO kh = 1, nh(np)
IF (same_lj(kh,ih,np)) THEN
DO jh = 1, nh(np)
ijh=ijtoh(ih,jh,np)
DO lh=1,nh(np)
IF (same_lj(lh,jh,np)) THEN
ijs=0
DO is1=1,npol
DO is2=1,npol
ijs=ijs+1
fac=dbecsum_nc(kh,lh,na,ijs,mode)
dbecsum(ijh,na,1,mode)=dbecsum(ijh,na,1,mode)+fac* &
(fcoef(kh,ih,is1,1,np)*fcoef(jh,lh,1,is2,np) + &
fcoef(kh,ih,is1,2,np)*fcoef(jh,lh,2,is2,np) )
IF (domag) THEN
dbecsum(ijh,na,2,mode)=dbecsum(ijh,na,2,mode)+ &
fac * &
(fcoef(kh,ih,is1,1,np)*fcoef(jh,lh,2,is2,np)+&
fcoef(kh,ih,is1,2,np)*fcoef(jh,lh,1,is2,np) )
dbecsum(ijh,na,3,mode)=dbecsum(ijh,na,3,mode)+ &
fac*(0.d0,-1.d0)*&
(fcoef(kh,ih,is1,1,np)*fcoef(jh,lh,2,is2,np) - &
fcoef(kh,ih,is1,2,np)*fcoef(jh,lh,1,is2,np) )
dbecsum(ijh,na,4,mode)=dbecsum(ijh,na,4,mode) &
+ fac * &
(fcoef(kh,ih,is1,1,np)*fcoef(jh,lh,1,is2,np) - &
fcoef(kh,ih,is1,2,np)*fcoef(jh,lh,2,is2,np) )
END IF
END DO
END DO
END IF
END DO
END DO
END IF
END DO
END DO
END DO
RETURN
END SUBROUTINE transform_dbecsum_so
!
!----------------------------------------------------------------------------
SUBROUTINE transform_dbecsum_nc(dbecsum_nc,dbecsum,na,modes)
......@@ -73,3 +176,4 @@ END DO
RETURN
END SUBROUTINE transform_dbecsum_nc
!
!
! Copyright (C) 2007-2016 Quantum ESPRESSO group
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!----------------------------------------------------------------------------
SUBROUTINE set_int3_nc(npe)
!----------------------------------------------------------------------------
USE ions_base, ONLY : nat, ntyp => nsp, ityp
USE uspp_param, only: upf
USE lrus, ONLY : int3, int3_nc
IMPLICIT NONE
INTEGER :: npe
INTEGER :: np, na
int3_nc=(0.d0,0.d0)
DO np = 1, ntyp
IF ( upf(np)%tvanp ) THEN
DO na = 1, nat
IF (ityp(na)==np) THEN
IF (upf(np)%has_so) THEN
CALL transform_int3_so(int3,na,npe)
ELSE
CALL transform_int3_nc(int3,na,npe)
END IF
END IF
END DO
END IF
END DO
END SUBROUTINE set_int3_nc
!
!----------------------------------------------------------------------------
SUBROUTINE transform_int3_so(int3,na,npert)
!----------------------------------------------------------------------------
!
! This routine multiply int3 by the identity and the Pauli
! matrices, rotate it as appropriate for the spin-orbit case
! and saves it in int3_nc.
!
USE kinds, ONLY : DP
USE ions_base, ONLY : nat, ityp
USE uspp_param, ONLY : nh, nhm
USE noncollin_module, ONLY : npol, nspin_mag
USE spin_orb, ONLY : fcoef, domag
USE lrus, ONLY : int3_nc
!
IMPLICIT NONE
INTEGER :: na, npert
COMPLEX(DP) :: int3(nhm,nhm,nat,nspin_mag,npert)
!
! ... local variables
!
INTEGER :: ih, jh, lh, kh, ipol, np, is1, is2, ijs
LOGICAL :: same_lj
np=ityp(na)
DO ih = 1, nh(np)
DO kh = 1, nh(np)
IF (same_lj(kh,ih,np)) THEN
DO jh = 1, nh(np)
DO lh= 1, nh(np)
IF (same_lj(lh,jh,np)) THEN
DO ipol=1,npert
ijs=0
DO is1=1,npol
DO is2=1,npol
ijs=ijs+1
int3_nc(ih,jh,na,ijs,ipol)= &
int3_nc(ih,jh,na,ijs,ipol) + &
int3 (kh,lh,na,1,ipol)* &
(fcoef(ih,kh,is1,1,np)*fcoef(lh,jh,1,is2,np) + &
fcoef(ih,kh,is1,2,np)*fcoef(lh,jh,2,is2,np) )
IF (domag) THEN
int3_nc(ih,jh,na,ijs,ipol)= &
int3_nc(ih,jh,na,ijs,ipol) + &
int3(kh,lh,na,2,ipol)* &
(fcoef(ih,kh,is1,1,np)*fcoef(lh,jh,2,is2,np)+ &
fcoef(ih,kh,is1,2,np)*fcoef(lh,jh,1,is2,np))+&
(0.D0,-1.D0) * int3(kh,lh,na,3,ipol)* &
(fcoef(ih,kh,is1,1,np)*fcoef(lh,jh,2,is2,np)- &
fcoef(ih,kh,is1,2,np)*fcoef(lh,jh,1,is2,np))+&
int3 (kh,lh,na,4,ipol)* &
(fcoef(ih,kh,is1,1,np)*fcoef(lh,jh,1,is2,np)- &
fcoef(ih,kh,is1,2,np)*fcoef(lh,jh,2,is2,np))
END IF
END DO
END DO
END DO
END IF
END DO
END DO
END IF
END DO
END DO
!
RETURN
END SUBROUTINE transform_int3_so
!
!----------------------------------------------------------------------------
SUBROUTINE transform_int3_nc(int3,na,npert)
!----------------------------------------------------------------------------
!
! This routine multiply int3 by the identity and the Pauli
! matrices and saves it in int3_nc.
!
USE kinds, ONLY : DP
USE ions_base, ONLY : nat, ityp
USE uspp_param, ONLY : nh, nhm
USE noncollin_module, ONLY : nspin_mag
USE spin_orb, ONLY : domag
USE lrus, ONLY : int3_nc
!
IMPLICIT NONE
INTEGER :: na, npert
COMPLEX(DP) :: int3(nhm,nhm,nat,nspin_mag,npert)
!
! ... local variables
!
INTEGER :: ih, jh, ipol, np
np=ityp(na)
DO ih = 1, nh(np)
DO jh = 1, nh(np)
DO ipol=1,npert
IF (domag) THEN
int3_nc(ih,jh,na,1,ipol)=int3(ih,jh,na,1,ipol)+int3(ih,jh,na,4,ipol)
int3_nc(ih,jh,na,2,ipol)= &
int3(ih,jh,na,2,ipol) - (0.d0, 1.d0) * int3(ih,jh,na,3,ipol)
int3_nc(ih,jh,na,3,ipol)= &
int3(ih,jh,na,2,ipol) + (0.d0, 1.d0) * int3(ih,jh,na,3,ipol)
int3_nc(ih,jh,na,4,ipol)= &
int3(ih,jh,na,1,ipol) - int3(ih,jh,na,4,ipol)
ELSE
int3_nc(ih,jh,na,1,ipol)=int3(ih,jh,na,1,ipol)
int3_nc(ih,jh,na,4,ipol)=int3(ih,jh,na,1,ipol)
END IF
END DO
END DO
END DO
RETURN
END SUBROUTINE transform_int3_nc
!
......@@ -158,8 +158,6 @@ transform_int_so.o \
transform_int_nc.o \
transform_alphasum_nc.o \
transform_alphasum_so.o \
transform_dbecsum_so.o \
transform_dbecsum_nc.o \
tra_write_matrix.o \
trntnsc.o \
write_epsilon_and_zeu.o \
......
......@@ -57,6 +57,13 @@ adddvepsi_us.o : ../../Modules/noncol.o
adddvepsi_us.o : ../../Modules/uspp.o
adddvepsi_us.o : ../../PW/src/pwcom.o
adddvepsi_us.o : phcom.o
adddvscf.o : ../../LR_Modules/lrcom.o
adddvscf.o : ../../Modules/ions_base.o
adddvscf.o : ../../Modules/kind.o
adddvscf.o : ../../Modules/noncol.o
adddvscf.o : ../../Modules/uspp.o
adddvscf.o : ../../PW/src/pwcom.o
adddvscf.o : phcom.o
addnlcc.o : ../../LR_Modules/lrcom.o
addnlcc.o : ../../Modules/cell_base.o
addnlcc.o : ../../Modules/fft_base.o
......@@ -1311,10 +1318,7 @@ set_dvscf.o : ../../Modules/kind.o
set_dvscf.o : ../../Modules/recvec.o
set_dvscf.o : ../../PW/src/pwcom.o
set_dvscf.o : phcom.o
set_int12_nc.o : ../../LR_Modules/lrcom.o
set_int12_nc.o : ../../Modules/ions_base.o
set_int12_nc.o : ../../Modules/kind.o
set_int12_nc.o : ../../Modules/noncol.o
set_int12_nc.o : ../../Modules/uspp.o
set_int12_nc.o : ../../PW/src/pwcom.o
set_int12_nc.o : phcom.o
......@@ -1550,24 +1554,12 @@ transform_alphasum_so.o : ../../Modules/noncol.o
transform_alphasum_so.o : ../../Modules/uspp.o
transform_alphasum_so.o : ../../PW/src/pwcom.o
transform_alphasum_so.o : phcom.o
transform_dbecsum_nc.o : ../../Modules/ions_base.o
transform_dbecsum_nc.o : ../../Modules/kind.o
transform_dbecsum_nc.o : ../../Modules/noncol.o
transform_dbecsum_nc.o : ../../Modules/uspp.o
transform_dbecsum_nc.o : ../../PW/src/pwcom.o
transform_dbecsum_so.o : ../../Modules/ions_base.o
transform_dbecsum_so.o : ../../Modules/kind.o
transform_dbecsum_so.o : ../../Modules/noncol.o
transform_dbecsum_so.o : ../../Modules/uspp.o
transform_dbecsum_so.o : ../../PW/src/pwcom.o
transform_int_nc.o : ../../LR_Modules/lrcom.o
transform_int_nc.o : ../../Modules/ions_base.o
transform_int_nc.o : ../../Modules/kind.o
transform_int_nc.o : ../../Modules/noncol.o
transform_int_nc.o : ../../Modules/uspp.o
transform_int_nc.o : ../../PW/src/pwcom.o
transform_int_nc.o : phcom.o
transform_int_so.o : ../../LR_Modules/lrcom.o
transform_int_so.o : ../../Modules/ions_base.o
transform_int_so.o : ../../Modules/kind.o
transform_int_so.o : ../../Modules/noncol.o
......
......@@ -39,59 +39,3 @@ DO np = 1, ntyp
END DO
END SUBROUTINE set_int12_nc
!----------------------------------------------------------------------------
SUBROUTINE set_int3_nc(npe)
!----------------------------------------------------------------------------
USE ions_base, ONLY : nat, ntyp => nsp, ityp
USE uspp_param, only: upf
USE lrus, ONLY : int3, int3_nc
IMPLICIT NONE
INTEGER :: npe
INTEGER :: np, na
int3_nc=(0.d0,0.d0)
DO np = 1, ntyp
IF ( upf(np)%tvanp ) THEN
DO na = 1, nat
IF (ityp(na)==np) THEN
IF (upf(np)%has_so) THEN
CALL transform_int3_so(int3,na,npe)
ELSE
CALL transform_int3_nc(int3,na,npe)
END IF
END IF
END DO
END IF
END DO
END SUBROUTINE set_int3_nc
!
!----------------------------------------------------------------------------
SUBROUTINE set_dbecsum_nc(dbecsum_nc, dbecsum, npe)
!----------------------------------------------------------------------------
USE kinds, ONLY : DP
USE ions_base, ONLY : nat, ntyp => nsp, ityp
USE uspp_param, only: upf, nhm
USE noncollin_module, ONLY : nspin_mag
USE lsda_mod, ONLY : nspin
IMPLICIT NONE
INTEGER :: npe
INTEGER :: np, na
COMPLEX(DP), INTENT(IN) :: dbecsum_nc( nhm, nhm, nat, nspin, npe)
COMPLEX(DP), INTENT(OUT) :: dbecsum( nhm*(nhm+1)/2, nat, nspin_mag, npe)
DO np = 1, ntyp
IF ( upf(np)%tvanp ) THEN
DO na = 1, nat
IF (ityp(na)==np) THEN
IF (upf(np)%has_so) THEN
CALL transform_dbecsum_so(dbecsum_nc,dbecsum,na, npe)
ELSE
CALL transform_dbecsum_nc(dbecsum_nc,dbecsum,na, npe)
END IF
END IF
END DO
END IF
END DO
RETURN
END SUBROUTINE set_dbecsum_nc
!
! Copyright (C) 2006 Quantum ESPRESSO group
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
!
!----------------------------------------------------------------------------
SUBROUTINE transform_dbecsum_so(dbecsum_nc,dbecsum,na,modes)
!----------------------------------------------------------------------------
!
! This routine multiply dbecsum_nc by the identity and the Pauli
! matrices, rotate it as appropriate for the spin-orbit case
! and saves it in dbecsum to use it in the calculation of
! the charge and magnetization.
!
USE kinds, ONLY : DP
USE ions_base, ONLY : nat, ntyp => nsp, ityp
USE uspp_param, ONLY : nh, nhm
USE lsda_mod, ONLY : nspin
USE uspp, ONLY : ijtoh
USE noncollin_module, ONLY : npol, nspin_mag
USE spin_orb, ONLY : fcoef, domag
!
IMPLICIT NONE
INTEGER :: na, modes
COMPLEX(DP) :: dbecsum_nc( nhm, nhm, nat, nspin, modes)
COMPLEX(DP) :: dbecsum( nhm*(nhm+1)/2, nat, nspin_mag, modes)
!
! ... local variables
!
INTEGER :: ih, jh, lh, kh, ijh, np, is1, is2, ijs, mode
COMPLEX(DP) :: fac
LOGICAL :: same_lj
np=ityp(na)
DO mode=1,modes
DO ih = 1, nh(np)
DO kh = 1, nh(np)
IF (same_lj(kh,ih,np)) THEN
DO jh = 1, nh(np)
ijh=ijtoh(ih,jh,np)
DO lh=1,nh(np)
IF (same_lj(lh,jh,np)) THEN
ijs=0
DO is1=1,npol
DO is2=1,npol
ijs=ijs+1
fac=dbecsum_nc(kh,lh,na,ijs,mode)
dbecsum(ijh,na,1,mode)=dbecsum(ijh,na,1,mode)+fac* &
(fcoef(kh,ih,is1,1,np)*fcoef(jh,lh,1,is2,np) + &
fcoef(kh,ih,is1,2,np)*fcoef(jh,lh,2,is2,np) )
IF (domag) THEN
dbecsum(ijh,na,2,mode)=dbecsum(ijh,na,2,mode)+ &
fac * &
(fcoef(kh,ih,is1,1,np)*fcoef(jh,lh,2,is2,np)+&
fcoef(kh,ih,is1,2,np)*fcoef(jh,lh,1,is2,np) )
dbecsum(ijh,na,3,mode)=dbecsum(ijh,na,3,mode)+ &
fac*(0.d0,-1.d0)*&
(fcoef(kh,ih,is1,1,np)*fcoef(jh,lh,2,is2,np) - &
fcoef(kh,ih,is1,2,np)*fcoef(jh,lh,1,is2,np) )
dbecsum(ijh,na,4,mode)=dbecsum(ijh,na,4,mode) &
+ fac * &
(fcoef(kh,ih,is1,1,np)*fcoef(jh,lh,1,is2,np) - &
fcoef(kh,ih,is1,2,np)*fcoef(jh,lh,2,is2,np) )
END IF
END DO
END DO
END IF
END DO
END DO
END IF
END DO
END DO
END DO
RETURN
END SUBROUTINE transform_dbecsum_so
......@@ -109,52 +109,6 @@ END DO
RETURN
END SUBROUTINE transform_int2_nc
!----------------------------------------------------------------------------
SUBROUTINE transform_int3_nc(int3,na,npert)
!----------------------------------------------------------------------------
!
! This routine multiply int3 by the identity and the Pauli
! matrices and saves it in int3_nc.
!
USE kinds, ONLY : DP
USE ions_base, ONLY : nat, ityp
USE uspp_param, ONLY : nh, nhm
USE noncollin_module, ONLY : nspin_mag
USE spin_orb, ONLY : domag
USE lrus, ONLY : int3_nc
!
IMPLICIT NONE
INTEGER :: na, npert
COMPLEX(DP) :: int3(nhm,nhm,nat,nspin_mag,npert)
!
! ... local variables
!
INTEGER :: ih, jh, ipol, np
np=ityp(na)
DO ih = 1, nh(np)
DO jh = 1, nh(np)
DO ipol=1,npert
IF (domag) THEN
int3_nc(ih,jh,na,1,ipol)=int3(ih,jh,na,1,ipol)+int3(ih,jh,na,4,ipol)
int3_nc(ih,jh,na,2,ipol)= &
int3(ih,jh,na,2,ipol) - (0.d0, 1.d0) * int3(ih,jh,na,3,ipol)
int3_nc(ih,jh,na,3,ipol)= &
int3(ih,jh,na,2,ipol) + (0.d0, 1.d0) * int3(ih,jh,na,3,ipol)
int3_nc(ih,jh,na,4,ipol)= &
int3(ih,jh,na,1,ipol) - int3(ih,jh,na,4,ipol)
ELSE
int3_nc(ih,jh,na,1,ipol)=int3(ih,jh,na,1,ipol)
int3_nc(ih,jh,na,4,ipol)=int3(ih,jh,na,1,ipol)
END IF
END DO
END DO
END DO
RETURN
END SUBROUTINE transform_int3_nc
!----------------------------------------------------------------------------
SUBROUTINE transform_int4_nc(int4,na)
!----------------------------------------------------------------------------
......
......@@ -150,74 +150,6 @@ END DO
RETURN
END SUBROUTINE transform_int2_so
!
!----------------------------------------------------------------------------
SUBROUTINE transform_int3_so(int3,na,npert)
!----------------------------------------------------------------------------
!
! This routine multiply int3 by the identity and the Pauli
! matrices, rotate it as appropriate for the spin-orbit case
! and saves it in int3_nc.
!
USE kinds, ONLY : DP
USE ions_base, ONLY : nat, ityp
USE uspp_param, ONLY : nh, nhm
USE noncollin_module, ONLY : npol, nspin_mag
USE spin_orb, ONLY : fcoef, domag
USE lrus, ONLY : int3_nc
!
IMPLICIT NONE
INTEGER :: na, npert
COMPLEX(DP) :: int3(nhm,nhm,nat,nspin_mag,npert)
!
! ... local variables
!
INTEGER :: ih, jh, lh, kh, ipol, np, is1, is2, ijs
LOGICAL :: same_lj
np=ityp(na)
DO ih = 1, nh(np)
DO kh = 1, nh(np)
IF (same_lj(kh,ih,np)) THEN
DO jh = 1, nh(np)
DO lh= 1, nh(np)
IF (same_lj(lh,jh,np)) THEN
DO ipol=1,npert
ijs=0
DO is1=1,npol
DO is2=1,npol
ijs=ijs+1
int3_nc(ih,jh,na,ijs,ipol)= &
int3_nc(ih,jh,na,ijs,ipol) + &
int3 (kh,lh,na,1,ipol)* &
(fcoef(ih,kh,is1,1,np)*fcoef(lh,jh,1,is2,np) + &
fcoef(ih,kh,is1,2,np)*fcoef(lh,jh,2,is2,np) )
IF (domag) THEN
int3_nc(ih,jh,na,ijs,ipol)= &
int3_nc(ih,jh,na,ijs,ipol) + &
int3(kh,lh,na,2,ipol)* &
(fcoef(ih,kh,is1,1,np)*fcoef(lh,jh,2,is2,np)+ &
fcoef(ih,kh,is1,2,np)*fcoef(lh,jh,1,is2,np))+&
(0.D0,-1.D0) * int3(kh,lh,na,3,ipol)* &
(fcoef(ih,kh,is1,1,np)*fcoef(lh,jh,2,is2,np)- &
fcoef(ih,kh,is1,2,np)*fcoef(lh,jh,1,is2,np))+&
int3 (kh,lh,na,4,ipol)* &
(fcoef(ih,kh,is1,1,np)*fcoef(lh,jh,1,is2,np)- &
fcoef(ih,kh,is1,2,np)*fcoef(lh,jh,2,is2,np))
END IF
END DO
END DO
END DO
END IF
END DO
END DO
END IF
END DO
END DO
!
RETURN
END SUBROUTINE transform_int3_so
!
!----------------------------------------------------------------------------
SUBROUTINE transform_int4_so(int4,na)
......
......@@ -18,7 +18,6 @@ lr_addus_dvpsi.o : ../../Modules/kind.o
lr_addus_dvpsi.o : ../../Modules/noncol.o
lr_addus_dvpsi.o : ../../Modules/paw_variables.o
lr_addus_dvpsi.o : ../../Modules/uspp.o
lr_addus_dvpsi.o : ../../PHonon/PH/phcom.o
lr_addusddens.o : ../../FFTXlib/fft_interfaces.o
lr_addusddens.o : ../../LR_Modules/lrcom.o
lr_addusddens.o : ../../Modules/fft_base.o
......@@ -39,7 +38,6 @@ lr_alloc_init.o : ../../Modules/kind.o
lr_alloc_init.o : ../../Modules/noncol.o
lr_alloc_init.o : ../../Modules/uspp.o
lr_alloc_init.o : ../../Modules/wavefunctions.o
lr_alloc_init.o : ../../PHonon/PH/phcom.o
lr_alloc_init.o : ../../PW/src/pwcom.o
lr_alloc_init.o : ../../PW/src/realus.o
lr_alloc_init.o : lr_charg_resp.o
......@@ -226,7 +224,6 @@ lr_dealloc.o : ../../Modules/becmod.o
lr_dealloc.o : ../../Modules/control_flags.o
lr_dealloc.o : ../../Modules/io_global.o
lr_dealloc.o : ../../Modules/uspp.o
lr_dealloc.o : ../../PHonon/PH/phcom.o
lr_dealloc.o : ../../PW/src/realus.o
lr_dealloc.o : lr_charg_resp.o
lr_dealloc.o : lr_exx_kernel.o
......
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