The Elk Code
dolpaa.f90
Go to the documentation of this file.
1 
2 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross.
3 ! This file is distributed under the terms of the GNU General Public License.
4 ! See the file COPYING for license details.
5 
6 subroutine dolpaa(is,ias,ngp,ngpq,apwalm,apwalmq,dapwalm,dapwalmq,ld,od)
7 use modmain
8 use modphonon
9 implicit none
10 ! arguments
11 integer, intent(in) :: is,ias
12 integer, intent(in) :: ngp,ngpq
13 complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw)
14 complex(8), intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw)
15 complex(8), intent(in) :: dapwalm(ngkmax,apwordmax,lmmaxapw)
16 complex(8), intent(in) :: dapwalmq(ngkmax,apwordmax,lmmaxapw)
17 integer, intent(in) :: ld
18 complex(8), intent(inout) :: od(*)
19 ! local variables
20 integer io,l,lm,i
21 ! automatic arrays
22 complex(8) a(lmoapw(is),ngpq),b(lmoapw(is),ngp)
23 if (ias /= iasph) return
24 i=0
25 do l=0,lmaxapw
26  do lm=l**2+1,(l+1)**2
27  do io=1,apword(l,is)
28  i=i+1
29  a(i,1:ngpq)=apwalmq(1:ngpq,io,lm)
30  b(i,1:ngp)=dapwalm(1:ngp,io,lm)
31  end do
32  end do
33 end do
34 call zmctm(lmoapw(is),ngpq,ngp,a,b,ld,od)
35 i=0
36 do l=0,lmaxapw
37  do lm=l**2+1,(l+1)**2
38  do io=1,apword(l,is)
39  i=i+1
40  a(i,1:ngpq)=dapwalmq(1:ngpq,io,lm)
41  b(i,1:ngp)=apwalm(1:ngp,io,lm)
42  end do
43  end do
44 end do
45 call zmctm(lmoapw(is),ngpq,ngp,a,b,ld,od)
46 end subroutine
47 
integer iasph
Definition: modphonon.f90:15
integer lmaxapw
Definition: modmain.f90:197
integer, dimension(0:maxlapw, maxspecies) apword
Definition: modmain.f90:758
subroutine dolpaa(is, ias, ngp, ngpq, apwalm, apwalmq, dapwalm, dapwalmq, ld, od)
Definition: dolpaa.f90:7
subroutine zmctm(l, m, n, a, b, ld, c)
Definition: zmctm.f90:7