Commit da702ccb authored by Gregor Michalicek's avatar Gregor Michalicek

Even more adaptions to the Wannier code provided by JPH

parent faabc5f1
......@@ -19,7 +19,7 @@ c ********************************************************
> lmax,rmsh,jri,pos,ngopr,ntypsy,nvd,
> omtil,amat,bmat,odi,ods,nlod,llod,nlo,llo,
> ff,gg,flo,acof,bcof,ccof,z,
> nv,k1,k2,k3,lmd,nbasfcn,
> nv,k1,k2,k3,lmd,nbasfcn,l_ss,qss,jspin,addnoco,
< xdnout)
c
USE m_types, ONLY : od_inp, od_sym
......@@ -32,8 +32,9 @@ C .. Scalar Arguments ..
INTEGER, INTENT (IN) :: lmaxd,jmtd,ntypd,natd,nmzd
INTEGER, INTENT (IN) :: iflag,n,na,iv,lmd,nv,nvd,nbasfcn
INTEGER, INTENT (IN) :: nq3,nvac,nmz,nmzxy,nq2,nop,nop2
LOGICAL, INTENT (IN) :: invs
REAL, INTENT (IN) :: z1,delz,omtil,bkpt(3)
LOGICAL, INTENT (IN) :: invs,l_ss
REAL, INTENT (IN) :: z1,delz,omtil,bkpt(3),qss(3)
INTEGER, INTENT (IN) :: jspin,addnoco
COMPLEX, INTENT (OUT):: xdnout
c-odim
TYPE (od_inp), INTENT (IN) :: odi
......@@ -69,6 +70,7 @@ C ..
C .. Local Arrays ..
COMPLEX sf2(n2d),sf3(n3d),ylm((lmaxd+1)**2)
REAL rcc(3),x(3),rcc2(3)
REAL bqpt(3)
C ..
C .. Intrinsic Functions ..
......@@ -80,7 +82,18 @@ C ..
c..define the factor e^{-ikr}
rcc2=matmul(bmat,p)/tpi_const
arg = -tpi*( bkpt(1)*rcc2(1) + bkpt(2)*rcc2(2) + bkpt(3)*rcc2(3) )
bqpt = 0.0
! if(l_ss.and.jspin.eq.1) then
! bqpt = -qss/2.0
! elseif(l_ss.and.jspin.eq.2) then
! bqpt = +qss/2.0
! endif
arg = -tpi*( (bkpt(1)+bqpt(1))*rcc2(1)
> + (bkpt(2)+bqpt(2))*rcc2(2)
> + (bkpt(3)+bqpt(3))*rcc2(3) )
arg1 = tpi*( bkpt(1)*rcc2(1) + bkpt(2)*rcc2(2) + bkpt(3)*rcc2(3) )
const2 = cmplx(cos(arg),sin(arg))
const3 = cmplx(cos(arg1),sin(arg1))
......@@ -100,7 +113,7 @@ c write (6,*) 'z(k)=', z(k)
arg = tpi*((k1(k))*rcc(1)+
+ (k2(k))*rcc(2)+
+ (k3(k))*rcc(3) )
xdnout = xdnout + z(k)*cmplx(cos(arg),sin(arg))*const
xdnout = xdnout + z(k+addnoco)*cmplx(cos(arg),sin(arg))*const
IF (((abs(p(1)-2.2).le.0.0001).and.(abs(p(2)).le.0.0001))
& .or.((abs(p(2)-2.2).le.0.0001).and.(abs(p(1)).le.0.0001)))then
c write (6,*) 'p(i)=',p(1:2)
......
......@@ -22,7 +22,7 @@ c****************************************************************
> l_bzsym,l_byindex,l_bynumber,l_byenergy,
> irreduc,odi,band_min,band_max,numbands,
> e1s,e2s,ef,l_paulimag,nkpt,
< nbnd,kpoints)
< nbnd,kpoints,l_gwf,iqpt)
use m_cdnread, only:cdn_read
use m_types,only:od_inp
......@@ -67,6 +67,12 @@ c****************************************************************
complex, allocatable :: paulimat(:,:,:,:)
real :: sum1,sum2,sum3
integer :: num_bands,err
! BEGIN QPOINTS
LOGICAL, INTENT(IN) :: l_gwf
INTEGER, INTENT(IN) :: iqpt
CHARACTER(len=12) :: fname
! END QPOINTS
real,parameter :: hartree=27.21138505
#if ( !defined(CPP_INVERSION) || defined(CPP_SOC) )
......@@ -74,22 +80,29 @@ c****************************************************************
#else
REAL :: z(nbasfcn,neigd)
#endif
! WRITE(*,*)'min',band_min,'max',band_max,'num',numbands
! WRITE(*,*)'wann_rw_eig: neigd',neigd
n_start=1
n_end=neigd
IF (l_gwf) THEN
WRITE(fname,'("_",i4.4,".eig")')iqpt
fname=spin12(jspin)//trim(fname)
ELSE
fname=spin12(jspin)//'.eig'
ENDIF
! WRITE(*,*)'wann_rw_eig.F: writing eig file ',fname
inquire (file=spin12(jspin)//'.eig',exist=l_eig)
inquire (file=fname,exist=l_eig)
if (l_eig) then
open (306,file=spin12(jspin)//'.eig',
open (306,file=fname,
& form='formatted',status='old')
rewind (306)
else
open (306,file=spin12(jspin)//'.eig',
open (306,file=fname,
& form='formatted',status='new')
endif!l_eig
write(*,*)"nkpt=",nkpt
if(l_paulimag.and..false.)then
num_bands=band_max-band_min+1
allocate( paulimat(num_bands,num_bands,3,nkpt),stat=err )
......@@ -125,10 +138,12 @@ c****************************************************************
> 0,isize,kptibz,jspin,nbasfcn,nlotot,
> l_ss,l_noco,nrec,irecl,
< nmat,nv,ello,evdu,epar,kveclo,
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time)
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time,66,
> l_gwf,iqpt)
nkbnd = 0
! WRITE(*,*)'wann_rw_eig: nbands',nbands
do i = 1,nbands
if((eig(i).ge.e1s .and. nkbnd.lt.numbands.and.l_bynumber).or.
& (eig(i).ge.e1s.and.eig(i).le.e2s.and.l_byenergy ).or.
......@@ -146,7 +161,8 @@ c****************************************************************
endif
endif
endif
enddo
enddo
! WRITE(*,*)'wann_rw_eig: nkbnd',nkbnd,'nbnd',nbnd
if (nkbnd.ge.nbnd) nbnd = nkbnd
if (odi%d1) kpoints(ikpt) = bkpt(3)
......@@ -170,7 +186,8 @@ c****************************************************************
> 0,isize,kptibz,jspin,nbasfcn,nlotot,
> l_ss,l_noco,nrec,irecl,
< nmat,nv,ello,evdu,epar,kveclo,
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time)
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time,66,
> l_gwf,iqpt)
nkbnd = 0
......@@ -195,20 +212,21 @@ c*********************************************************************
> irank,isize,kptibz,jspin,nbasfcn,nlotot,
> l_ss,l_noco,nrec,irecl,
< nmat,nv,ello,evdu,epar,kveclo,
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time)
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time,funit,
> l_gwf,iqpt)
use m_cdnread, only:cdn_read
implicit none
INTEGER, INTENT (IN) :: irank,isize,kptibz,nbasfcn,neigd,nlotot
INTEGER, INTENT (IN) :: nrec,nvd,jspd,jspin
INTEGER, INTENT (IN) :: lmaxd,ntypd,nlod
INTEGER, INTENT (IN) :: lmaxd,ntypd,nlod,iqpt
LOGICAL, INTENT (IN) :: l_ss,l_noco,l_gwf
#ifndef CPP_MPI
integer(8), intent (in) :: irecl
#else
include 'mpif.h'
INTEGER(KIND=MPI_OFFSET_KIND),intent(in) :: irecl
#endif
LOGICAL, INTENT (IN) :: l_ss,l_noco
INTEGER, INTENT (OUT) :: nbands,nmat
REAL, INTENT (OUT) :: wk
......@@ -225,7 +243,9 @@ c*********************************************************************
REAL, INTENT (OUT) :: z(nbasfcn,neigd)
#endif
character(len=12) :: fname
INTEGER, INTENT(IN) :: funit
character(len=12) :: fname,fend
integer :: aoff,d1,d10
integer :: cpu_index
logical :: l_eig
......@@ -234,6 +254,8 @@ c*********************************************************************
n_start=1
n_end=neigd
fend=''
if(l_gwf) write(fend,'("_",i4.4)')iqpt
do cpu_index=0,isize-1
......@@ -242,25 +264,28 @@ c*********************************************************************
if(cpu_index.eq.irank)then
#if 1==1
call judft_error("NOT IMPLEMENTED")
#else
call cdn_read(
> eig_id,nvd,jspd,
> irank,isize,kptibz,jspin,nbasfcn,
> l_noco,neigd,
> lmaxd,ntypd,nlod,neigd,nvd,jspd,
> irank,isize,kptibz,jspin,nbasfcn,nlotot,
> l_ss,l_noco,nrec,kptibz,funit,neigd,
> n_start,n_end,
< nmat,nv,ello,evdu,epar,kveclo,
< k1,k2,k3,bkpt,wk,nbands,eig,zmat)
#endif
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time)
else !eigenvalues are stored in the file of another process
#if 1==2
d10=int((cpu_index+0.5)/10)
d1=mod(cpu_index,10)
aoff=iachar('1')-1
if(d10.ge.10)aoff=iachar('7')
fname='eig'//achar(d10+aoff)//achar(d1+iachar('1')-1)
fname=trim(fname)//trim(fend)
l_eig=.false.
!write(*,*)fname
c if(irank.eq.0) write(*,*) 'opening file=',fname
inquire(file=fname,exist=l_eig)
IF(.NOT.l_eig) CALL juDFT_error("one of eig files not found"
+ ,calledby ="wann_rw_eig")
......@@ -275,37 +300,35 @@ c*********************************************************************
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time)
close(666)
#endif
endif !cpu_index==irank
endif !find process
enddo !cpu_index
enddo !cpu_index
end subroutine wann_mpi_read_eig
c*****************************************************************
c read in eig file
c*****************************************************************
subroutine wann_read_eig(
subroutine wann_read_eig(
> ntapwf,
> lmaxd,ntypd,nlod,neigd,nvd,jspd,
> irank,isize,kptibz,jspin,nbasfcn,nlotot,
> l_ss,l_noco,nrec,irecl,
< nmat,nv,ello,evdu,epar,kveclo,
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time)
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time,funit,
> l_gwf,iqpt)
use m_cdnread, only:cdn_read
implicit none
integer, intent (in) :: ntapwf
INTEGER, INTENT (IN) :: irank,isize,kptibz,nbasfcn,neigd,nlotot
INTEGER, INTENT (IN) :: nrec,nvd,jspd,jspin
INTEGER, INTENT (IN) :: lmaxd,ntypd,nlod
INTEGER, INTENT (IN) :: lmaxd,ntypd,nlod,iqpt
LOGICAL, INTENT (IN) :: l_ss,l_noco,l_gwf
#ifndef CPP_MPI
integer(8), intent (in) :: irecl
#else
include 'mpif.h'
INTEGER(KIND=MPI_OFFSET_KIND),intent(in) :: irecl
#endif
LOGICAL, INTENT (IN) :: l_ss,l_noco
INTEGER, INTENT (OUT) :: nbands,nmat
REAL, INTENT (OUT) :: wk
......@@ -322,6 +345,8 @@ c*****************************************************************
REAL, INTENT (OUT) :: z(nbasfcn,neigd)
#endif
INTEGER, INTENT(IN) :: funit !QPOINTS
integer :: n_start,n_end
n_start=1
......@@ -329,37 +354,24 @@ c*****************************************************************
#if( defined(CPP_MPI) && !defined(CPP_HDF) )
! MPI without HDF
#ifdef CPP_HYBEIG
c-----if hybrid functionals are used, and mpi is defined, mpi-io is
c-----used and all processors use the same eig-file
call cdn_read(
> lmaxd,ntypd,nlod,neigd,nvd,jspd,
> irank,isize,kptibz,jspin,nbasfcn,nlotot,
> l_ss,l_noco,nrec,kptibz,ntapwf,neigd,
> n_start,n_end,
< nmat,nv,ello,evdu,epar,kveclo,
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time)
#else
call wann_mpi_read_eig(
call wann_mpi_read_eig(
> lmaxd,ntypd,nlod,neigd,nvd,jspd,
> irank,isize,kptibz,jspin,nbasfcn,nlotot,
> l_ss,l_noco,nrec,irecl,
< nmat,nv,ello,evdu,epar,kveclo,
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time)
#endif
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time,funit,
> l_gwf,iqpt)
#else
!MPI with HDF or no MPI
#if 1==1
call judft_error("NOT IMPLEMENTED")
#else
call cdn_read(
> lmaxd,ntypd,nlod,neigd,nvd,jspd,
> 0,isize,kptibz,jspin,nbasfcn,nlotot,
> l_ss,l_noco,nrec,kptibz,66,
> l_ss,l_noco,nrec,kptibz,funit,
> neigd,n_start,n_end,
< nmat,nv,ello,evdu,epar,kveclo,
< k1,k2,k3,bkpt,wk,nbands,eig,z,cp_time)
#endif
#endif
END SUBROUTINE wann_read_eig
END MODULE m_wann_rw_eig
This diff is collapsed.
......@@ -114,7 +114,7 @@ c****************************************************************************
cccccccccccccccccc local variables cccccccccccccccccccc
type(t_wann) :: wann
integer :: lmd,nlotot,n,nmat,iter,ikpt,ikpt_b,nmat_b
integer :: addnoco,funbas,loplod
integer :: addnoco,addnoco2,funbas,loplod
integer :: noccbd,noccbd_b,nn,nkpts,i,jspin,j,l,i_rec,m,nwf,nwfp
integer :: jsp_start,jsp_end,nrec,nrec1,nbands,nbands_b
integer :: nodeu,noded,n_size,na,n_rank,nbnd,numbands
......@@ -335,8 +335,8 @@ c**************************************************************
open(713,file='kptsmap')
do i=1,fullnkpts
read(713,*)kpt,irreduc(i),mapkoper(i),shiftkpt(:,i)
IF(kpt/=i) CALL juDFT_error("kpt.ne.i",calledby ="wann_updown"
+ )
IF(kpt/=i) CALL juDFT_error("kpt.ne.i",
+ calledby ="wann_updown")
if(l_p0)print*,i,irreduc(i),mapkoper(i)
enddo
close(713)
......@@ -431,8 +431,8 @@ c..reading the proj.1 / proj.2 / proj file
rewind (203)
close (203)
else
CALL juDFT_error("no proj/proj.1/proj.2",calledby ="wann_updown"
+ )
CALL juDFT_error("no proj/proj.1/proj.2",
+ calledby ="wann_updown")
endif
......@@ -472,7 +472,7 @@ c*************************************************************
> wann%band_max(jspin),
> numbands,
> e1s,e2s,efermi,wann%l_pauli,nkpts,
< nbnd,kpoints)
< nbnd,kpoints,.false.,-1)
if(odi%d1)then
kpoints(:)=kpoints(:)*bmat(3,3)
endif
......@@ -746,7 +746,7 @@ c****************************************************************
> l_ss,l_noco,nrec,irecl,
< nmat,nv,ello,evdu,epar,kveclo,
< k1,k2,k3,bkpt,wk,nbands,eigg(:,jspin),
< zz(:,:,jspin),cp_time)
< zz(:,:,jspin),cp_time,66,.false.,1)
#endif
nrec=0
enddo !jspin
......@@ -767,7 +767,7 @@ c...we work only within the energy window
do jspin=1,wannierspin
nslibd=0
print*,"bands used:"
!print*,"bands used:"
do i = 1,nbands
if ((eigg(i,1).ge.e1s.and.nslibd.lt.numbands.
& and.wann%l_bynumber)
......@@ -777,7 +777,7 @@ c...we work only within the energy window
& (i.le.wann%band_max(jspin))
& .and.wann%l_byindex))then
print*,i
!print*,i
nslibd = nslibd + 1
eig(nslibd) = eigg(i,1)
if(l_noco)then
......@@ -1011,8 +1011,9 @@ c$$$
c$$$ 22 continue
c$$$ enddo !i
addnoco2 = addnoco ! TODO: correct for addnoco2
call wann_mmkb_int(
> 0,addnoco,
> cmplx(1.,0.),addnoco,addnoco2,
> nvd,k1d,k2d,k3d,
> n3d,k1(:,jspin),k2(:,jspin),k3(:,jspin),
> nv(jspin),neigd,nbasfcn,z(:,:,1),nslibd,
......@@ -1026,7 +1027,7 @@ c$$$ enddo !i
c---> spherical contribution to updown.mmn0-matrix
call wann_mmk0_updown_sph(
> l_noco,alph,beta,
> llod,noccbd,nlod,natd,ntypd,lmaxd,lmd,
> llod,noccbd,nlod,natd,ntypd,lmaxd,lmax,lmd,
> ntype,neq,nlo,llo,
> radial1_ff,radial1_gg,radial1_fg,radial1_gf,
> radial1_flo,radial1_glo,
......@@ -1106,8 +1107,8 @@ c******************************************************
> mpi_comm,l_p0,'updown.mmn0',
> 'Overlaps of the wavefunct. at the same kpoint',
> nbnd,fullnkpts,nbnd,
> irank,isize,.false.,wann%l_unformatted,
< mmn)
> irank,isize,.false.,
< mmn,wann%l_unformatted)
endif !l_soc and l_mmn0
if(wann%l_perpmag)then
......@@ -1115,8 +1116,8 @@ c******************************************************
> mpi_comm,l_p0,'updown.perpmag',
> 'Overlaps of the wavefunct. with Beff',
> nbnd,fullnkpts,nbnd,
> irank,isize,.true.,wann%l_unformatted,
< perpmag)
> irank,isize,.true.,
< perpmag,wann%l_unformatted)
endif !l_soc and l_mmn0
if(wann%l_surfcurr)then
......
This diff is collapsed.
......@@ -22,7 +22,7 @@
integer, intent(out):: ndegen(:)
integer :: idist (3)
real :: dist(125),summa,dist_min
real :: dist(1331),summa,dist_min
integer :: k1,k2,k3,i1,i2,i3,count,i,j
real :: eps7,eps8
real :: metric(3,3)
......@@ -34,13 +34,13 @@
metric=matmul(transpose(amat),amat)
rvecnum = 0
do k1=-num(1),num(1)
do k2=-num(2),num(2)
do k3=-num(3),num(3)
do k1=-2*num(1),2*num(1)
do k2=-2*num(2),2*num(2)
do k3=-2*num(3),2*num(3)
count=0
do i1=-2,2
do i2=-2,2
do i3=-2,2
do i1=-5,5
do i2=-5,5
do i3=-5,5
count=count+1
! Get |r-R|^2
idist(1)=k1-i1*num(1)
......@@ -57,13 +57,13 @@
enddo !i2
enddo !i1
dist_min=minval(dist)
if (abs(dist(63) - dist_min ) .lt. eps7 ) then
if (abs(dist(666) - dist_min ) .lt. eps7 ) then
rvecnum = rvecnum + 1
if(.not. l_get_rvecnum) then
c if(.not.allocated(ndegen))
c & allocate(ndegen(rvecnum_in))
ndegen(rvecnum)=0
do i=1,125
do i=1,1331
if (abs (dist (i) - dist_min) .lt. eps7 )
& ndegen(rvecnum)=ndegen(rvecnum)+1
end do
......@@ -83,8 +83,8 @@ c------ Consistency Check.
summa = summa + 1.0/real(ndegen(i))
enddo
if (abs (summa - real(num(1)*num(2)*num(3)) ) > eps8) then
CALL juDFT_error("problem finding Wigner-Seitz points",calledby
+ ="wann_wigner_seitz")
CALL juDFT_error("problem finding Wigner-Seitz points",
+ calledby ="wann_wigner_seitz")
endif
end subroutine wann_wigner_seitz
......
......@@ -9,8 +9,8 @@
subroutine wann_write_amn(
> mpi_comm,l_p0,filename,title,
> nbnd,fullnkpts,nwfs,
> irank,isize,l_freeformat,l_unformatted,
< amn)
> irank,isize,l_freeformat,
< amn,l_unformatted)
c**********************************************************
c This subroutine is used to write several matrices to
c files: WF1.mmn, WF1.amn, etc. The corresponding
......@@ -27,7 +27,7 @@ c Frank Freimuth
c**********************************************************
implicit none
integer, intent(in) :: mpi_comm
logical, intent(in) :: l_p0
logical, intent(in) :: l_p0,l_unformatted
character, intent(in) :: filename*(*)
character, intent(in) :: title*(*)
......@@ -37,7 +37,6 @@ c**********************************************************
integer, intent(in) :: irank,isize
logical, intent(in) :: l_freeformat
logical, intent(in) :: l_unformatted
complex, intent(inout) :: amn(:,:,:)
......@@ -78,19 +77,22 @@ c******************************************************
enddo !ikpt
endif !isize
#endif
if(l_p0)then
if(l_unformatted)then
open(305,file=trim(filename)//'_unf',form='unformatted')
write(305)nbnd,fullnkpts,nwfs
write(305)amn(1:nbnd,1:nwfs,1:fullnkpts)
else
if(l_freeformat)then
open (305,file=filename,form='unformatted')
elseif(l_freeformat)then
open(305,file=filename,recl=1000)
else
else
open (305,file=filename)
endif
endif
if(l_unformatted)then
write(305)nbnd,fullnkpts,nwfs
write(305)amn
else
write (305,*)title
write (305,'(3i5)') nbnd,fullnkpts,nwfs
write (305,'(i5,i7,i5)') nbnd,fullnkpts,nwfs
if(l_freeformat)then
do ikpt = 1,fullnkpts
do nwf = 1,nwfs
......@@ -104,13 +106,13 @@ c******************************************************
do ikpt = 1,fullnkpts
do nwf = 1,nwfs
do i = 1,nbnd
write (305,'(3i5,3x,2f18.12)') i,nwf,ikpt,
write (305,'(i5,i5,i7,3x,2f18.12)') i,nwf,ikpt,
& real(amn(i,nwf,ikpt)),aimag(amn(i,nwf,ikpt))
enddo !i
enddo !nwf
enddo !ikpt
endif !l_freeformat
endif !l_unformatted
endif
endif
close(305)
endif
......
......@@ -9,8 +9,8 @@
subroutine wann_write_mmnk(
> mpi_comm,jspin2,l_p0,fullnkpts,nntot,wann,
> maptopair,pair_to_do,nbnd,bpt,gb,
> isize,irank,
< mmnk)
> isize,irank,fending,
< mmnk,l_unformatted)
c**********************************************************
c MPI-Version: Collect the contributions to the matrix
c M^{k,b}_{mn} from the various processors.
......@@ -25,7 +25,7 @@ c**********************************************************
use m_juDFT
implicit none
integer, intent(in) :: jspin2,mpi_comm
logical, intent(in) :: l_p0
logical, intent(in) :: l_p0,l_unformatted
integer, intent(in) :: fullnkpts
integer, intent(in) :: nntot
type(t_wann),intent(in) :: wann
......@@ -37,6 +37,8 @@ c**********************************************************
integer, intent(in) :: gb(:,:,:)
integer, intent(in) :: isize,irank
CHARACTER(len=12), INTENT(IN) :: fending !for file ending !QPOINTS
complex, intent(inout) :: mmnk(:,:,:,:) !mmnk(nbnd,nbnd,nntot,fullnkpts)
......@@ -119,7 +121,8 @@ c******************************************************
c Write mmnk matrix to file.
c******************************************************
if (l_p0) then
open (305,file=spin12(jspin2)//'.mmn')
if(.not.l_unformatted) then
open (305,file=spin12(jspin2)//trim(fending)//'.mmn')
write (305,*) 'Overlaps of the wavefunct. the k- and b-points'
write (305,'(3i5)') nbnd,fullnkpts,nntot
do ikpt = 1,fullnkpts
......@@ -136,6 +139,14 @@ c write (305,'(2f18.12)')
enddo
enddo !ikpt
close (305)
else
open (305,file=spin12(jspin2)//trim(fending)//'.mmn',
> form='unformatted')
write (305) nbnd,fullnkpts,nntot
write (305) bpt,gb
write (305) conjg(mmnk)
close (305)
endif
endif !l_p0
end subroutine wann_write_mmnk
......
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