The Elk Code
 
Loading...
Searching...
No Matches
getevaluv.f90
Go to the documentation of this file.
1
2! Copyright (C) 2019 J. K. Dewhurst and S. Sharma.
3! This file is distributed under the terms of the GNU General Public License.
4! See the file COPYING for license details.
5
6subroutine getevaluv(ik,evaluvp)
7use modmain
8implicit none
9! arguments
10integer, intent(in) :: ik
11real(8), intent(out) :: evaluvp(nstsv)
12! local variables
13integer recl,nstsv_
14real(8) vkl_(3),t1
15! find the record length
16inquire(iolength=recl) vkl_,nstsv_,evaluvp
17!$OMP CRITICAL(u320)
18open(320,file='EVALUV.OUT',form='UNFORMATTED',access='DIRECT',recl=recl)
19read(320,rec=ik) vkl_,nstsv_,evaluvp
20close(320)
21!$OMP END CRITICAL(u320)
22t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3))
23if (t1 > epslat) then
24 write(*,*)
25 write(*,'("Error(getevaluv): differing vectors for k-point ",I8)') ik
26 write(*,'(" current : ",3G18.10)') vkl(:,ik)
27 write(*,'(" EVALUV.OUT : ",3G18.10)') vkl_
28 write(*,*)
29 stop
30end if
31if (nstsv /= nstsv_) then
32 write(*,*)
33 write(*,'("Error(getevaluv): differing nstsv for k-point ",I8)') ik
34 write(*,'(" current : ",I8)') nstsv
35 write(*,'(" EVALUV.OUT : ",I8)') nstsv_
36 write(*,*)
37 stop
38end if
39end subroutine
40
subroutine getevaluv(ik, evaluvp)
Definition getevaluv.f90:7
real(8) epslat
Definition modmain.f90:24
real(8), dimension(:,:), allocatable vkl
Definition modmain.f90:471