-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathspace_a.f90
More file actions
70 lines (56 loc) · 2.15 KB
/
space_a.f90
File metadata and controls
70 lines (56 loc) · 2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
!----------------------------------------------------------------------------------------
! solve the equation, reference from haru,lars, equation(12)
!
!
! ______ ________
! . \ i i j \ i k j l
! ci*C_i = \ (h - ci* eta ) <F_I |E | wf> + 0.5* \ v <F_I |E | wf>
! / j j i / j l i k
! /__ij__ /__ijkl__
!
!----------------------------------------------------------------------------------------
subroutine acoff_eqs()
use global
use auxiliary
use density
use wfunction
use operator_spatial_space
use solver
implicit none
integer :: iab,jab,ipq,ipqrs,ip,iq,ir,is,iz,iip,iiq,iir,iis,iipr
complex(kind=k2) :: cs,cpm,cvv,cenergy
integer :: sign_here
integer :: idicp,jdicp
do iab=1,n_string_ab
cs=zzero
do ipq=1,num_amp1(iab) ! wenliang find the matrix element in right hand, the details can be found in the paper
ip =i_amp1(iab,ipq,1)
iq =i_amp1(iab,ipq,2) ! iq <- ip
jab =i_amp1(iab,ipq,3)
sign_here = i_amp1(iab,ipq,4)
cpm=dcmplx(dble(sign_here),0.d0)
cs=cs+ch_dummy(ip,iq)*cpm*acoff(jab)
enddo
do ipqrs=1,num_amp2(iab)
ip =i_amp2(iab,ipqrs,1)
iq =i_amp2(iab,ipqrs,2)
ir =i_amp2(iab,ipqrs,3)
is =i_amp2(iab,ipqrs,4)
jab =i_amp2(iab,ipqrs,5)
iip =i_amp2(iab,ipqrs,6)
iiq =i_amp2(iab,ipqrs,7)
iir =i_amp2(iab,ipqrs,8)
iis =i_amp2(iab,ipqrs,9)
sign_here = i_amp2(iab,ipqrs,10)
cpm =dcmplx(dble(sign_here),0.d0)
cvv=zzero
if ((iip.eq.iiq).and.(iir.eq.iis)) then
cvv=tei_spatial(ip,ir,is,iq)
if (iip.eq.iis) cvv=cvv-tei_spatial(ip,ir,iq,is)
endif
cs=cs+cvv*cpm*acoff(jab)
enddo
ka(iab)=-ci*cs
enddo
return
end subroutine acoff_eqs