19 real(8),
allocatable :: vmt(:,:),vir(:),bmt(:,:,:),bir(:,:)
20 complex(8),
allocatable :: evecsv(:,:),evectv(:,:),evecsvt(:,:)
21 complex(8),
allocatable :: kmat(:,:),pmat(:,:,:),a(:,:),b(:,:),c(:,:)
24 write(*,
'("Error(timestep): itimes >= ntimes :",2(X,I0))')
itimes,
ntimes 32 allocate(bmt(1,1,1),bir(1,1))
51 allocate(evecsv(nstsv,nstsv),evectv(nstsv,nstsv),evecsvt(nstsv,nstsv))
52 allocate(kmat(nstsv,nstsv),pmat(nstsv,nstsv,3))
53 allocate(a(nstsv,nstsv),b(nstsv,nstsv),c(nstsv,nstsv))
63 call genhmlt(ik,vmt,vir,bmt,bir,kmat,pmat,evectv)
74 call zheevdi(nstsv,nstsv,evectv,w)
79 call zgemm(
'N',
'N',nstsv,nstsv,nstsv,
zone,evecsv,nstsv,evectv,nstsv,
zzero,a, &
82 if (
tdphi == 0.d0)
then 86 z1=cmplx(cos(t1),sin(t1),8)
87 b(1:nstsv,i)=z1*a(1:nstsv,i)
95 b(1:nstsv,i)=z1*a(1:nstsv,i)
101 call zgemm(
'C',
'N',nstsv,nstsv,nstsv,
zone,a,nstsv,evecsvt,nstsv,
zzero,c,nstsv)
102 call zgemm(
'N',
'N',nstsv,nstsv,nstsv,
zone,b,nstsv,c,nstsv,
zzero,evecsvt,nstsv)
108 call engyknk(ik,kmat,evecsv,evecsvt)
110 call jtotk(ik,pmat,evecsv,evecsvt)
115 deallocate(evecsv,evectv,evecsvt,kmat,pmat,a,b,c)
118 deallocate(vmt,vir,bmt,bir)
121 call mpi_allreduce(mpi_in_place,
engykn,1,mpi_double_precision,mpi_sum,
mpicom,&
123 call mpi_allreduce(mpi_in_place,
jtot,3,mpi_double_precision,mpi_sum,
mpicom, &
subroutine getevecsv(fext, ikp, vpl, evecsv)
real(8), dimension(3) jtot
subroutine getpmat(vpl, pmat)
complex(8), parameter zone
subroutine getkmat(ik, kmat)
subroutine jtotk(ik, pmat, evecsv, evecsvt)
subroutine zheevdi(n, ld, a, w)
subroutine engyknk(ik, kmat, evecsv, evecsvt)
complex(8), parameter zzero
real(8), dimension(:,:), allocatable vkl
real(8), dimension(:,:), allocatable afieldt
real(8), dimension(:), allocatable times
subroutine holdthd(nloop, nthd)
subroutine putevecsv(fext, ik, evecsv)
subroutine genhmlt(ik, vmt, vir, bmt, bir, kmat, pmat, h)
real(8), dimension(3) chgstot
subroutine vblocal(vmt, vir, bmt, bir)