45 COMPLEX(KIND=dp),
ALLOCATABLE,
DIMENSION(:) :: cc
46 INTEGER :: group_size, ig1, ig2, ip, jg2, me, ng1, &
48 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ngr
49 INTEGER,
ALLOCATABLE,
DIMENSION(:, :) :: g_hat
50 INTEGER,
DIMENSION(3) :: k1, k2
60 group = pg1%para%group
61 group_size = pg1%para%group%num_pe
62 me = pg1%para%group%mepos
63 ALLOCATE (ngr(group_size))
65 ngr(me + 1) = pg1%ngpts_cut_local
69 cc(1:ng1) = pw1%array(1:ng1)
70 cc(ng1 + 1:ngm) = cmplx(0.0_dp, 0.0_dp, kind=
dp)
72 ALLOCATE (g_hat(3, ngm))
74 g_hat(1:3, 1:ng1) = pg1%g_hat(1:3, 1:ng1)
78 IF (penow < 0) penow = penow + group_size
80 DO ig1 = 1, ngr(penow + 1)
81 k1(1:3) = g_hat(1:3, ig1)
84 k2(1:3) = pg2%g_hat(1:3, ig2)
85 IF (sum(abs(k1 - k2)) == 0)
THEN
90 IF (jg2 /= 0) pw2%array(jg2) = cc(ig1)
92 IF (ip /= group_size)
THEN
94 CALL group%shift(g_hat)
99 DEALLOCATE (ngr, cc, g_hat)