The Elk Code
getevecwxy.f90
Go to the documentation of this file.
1 
2 ! Copyright (C) 2020 Chung-Yu Wang, J. K. Dewhurst, S. Sharma and
3 ! E. K. U. Gross. This file is distributed under the terms of the GNU General
4 ! Public License. See the file COPYING for license details.
5 
6 subroutine getevecwxy(iq,w,x,y)
7 use modmain
8 use modphonon
9 implicit none
10 ! arguments
11 integer, intent(in) :: iq
12 complex(8), intent(out) :: w(nbph,nbph),x(nbph,nbph),y(nbph)
13 ! local variables
14 integer recl,nbph_
15 real(8) vql_(3),t1
16 ! find the record length
17 inquire(iolength=recl) vql_,nbph_,w,x,y
18 !$OMP CRITICAL(u332)
19 open(332,file='EVECWXY.OUT',form='UNFORMATTED',access='DIRECT',recl=recl)
20 read(332,rec=iq) vql_,nbph_,w,x,y
21 close(332)
22 !$OMP END CRITICAL(u332)
23 t1=abs(vql(1,iq)-vql_(1))+abs(vql(2,iq)-vql_(2))+abs(vql(3,iq)-vql_(3))
24 if (t1 > epslat) then
25  write(*,*)
26  write(*,'("Error(getevecwxy): differing vectors for q-point ",I8)') iq
27  write(*,'(" current : ",3G18.10)') vql(:,iq)
28  write(*,'(" EVECWXY.OUT : ",3G18.10)') vql_
29  write(*,*)
30  stop
31 end if
32 if (nbph /= nbph_) then
33  write(*,*)
34  write(*,'("Error(getevecwxy): differing nbph for q-point ",I8)') iq
35  write(*,'(" current : ",I8)') nbph
36  write(*,'(" EVECWXY.OUT : ",I8)') nbph_
37  write(*,*)
38  stop
39 end if
40 end subroutine
41 
subroutine getevecwxy(iq, w, x, y)
Definition: getevecwxy.f90:7
real(8), dimension(:,:), allocatable vql
Definition: modmain.f90:545
real(8) epslat
Definition: modmain.f90:24