19 real(8),
allocatable :: vmt(:,:),vir(:),bmt(:,:,:),bir(:,:)
20 complex(8),
allocatable :: evecsv(:,:),evectv(:,:),evecsvt(:,:)
21 complex(8),
allocatable :: kmat(:,:),pmat(:,:,:)
22 complex(8),
allocatable :: a(:,:),b(:,:),c(:,:)
25 write(*,
'("Error(timestep): itimes >= ntimes : ",2I8)')
itimes,
ntimes 33 allocate(bmt(1,1,1),bir(1,1))
52 allocate(evecsv(nstsv,nstsv),evectv(nstsv,nstsv),evecsvt(nstsv,nstsv))
53 allocate(kmat(nstsv,nstsv),pmat(nstsv,nstsv,3))
54 allocate(a(nstsv,nstsv),b(nstsv,nstsv),c(nstsv,nstsv))
64 call genhmlt(ik,vmt,vir,bmt,bir,kmat,pmat,evectv)
75 call eveqnzh(nstsv,nstsv,evectv,w)
80 call zgemm(
'N',
'N',nstsv,nstsv,nstsv,
zone,evecsv,nstsv,evectv,nstsv,
zzero,a, &
83 if (
tdphi == 0.d0)
then 87 z1=cmplx(cos(t1),sin(t1),8)
88 b(1:nstsv,i)=z1*a(1:nstsv,i)
96 b(1:nstsv,i)=z1*a(1:nstsv,i)
102 call zgemm(
'C',
'N',nstsv,nstsv,nstsv,
zone,a,nstsv,evecsvt,nstsv,
zzero,c,nstsv)
103 call zgemm(
'N',
'N',nstsv,nstsv,nstsv,
zone,b,nstsv,c,nstsv,
zzero,evecsvt,nstsv)
109 call engyknk(ik,kmat,evecsv,evecsvt)
111 call jtotk(ik,pmat,evecsv,evecsvt)
116 deallocate(evecsv,evectv,evecsvt)
117 deallocate(kmat,pmat,a,b,c)
120 deallocate(vmt,vir,bmt,bir)
123 call mpi_allreduce(mpi_in_place,
engykn,1,mpi_double_precision,mpi_sum,
mpicom,&
125 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 eveqnzh(n, ld, a, w)
subroutine jtotk(ik, pmat, evecsv, evecsvt)
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)