The Elk Code
getevalu.f90
Go to the documentation of this file.
1 
2 ! Copyright (C) 2024 Wenhan Chen, 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 
6 subroutine getevalu(ik0)
7 use modmain
8 use modulr
9 implicit none
10 ! arguments
11 integer, intent(in) :: ik0
12 ! local variables
13 integer ik,recl,nstulr_
14 real(8) vkl_(3),t1
15 ! central k-point
16 ik=(ik0-1)*nkpa+1
17 ! find the record length
18 inquire(iolength=recl) vkl_,nstulr_,evalu(1:nstulr,ik0)
19 !$OMP CRITICAL(u304)
20 open(304,file='EVALU.OUT',form='UNFORMATTED',access='DIRECT',recl=recl)
21 read(304,rec=ik0) vkl_,nstulr_,evalu(1:nstulr,ik0)
22 close(304)
23 !$OMP END CRITICAL(u304)
24 t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3))
25 if (t1 > epslat) then
26  write(*,*)
27  write(*,'("Error(getevalu): differing vectors for k-point ",I8)') ik
28  write(*,'(" current : ",3G18.10)') vkl(:,ik)
29  write(*,'(" EVALU.OUT : ",3G18.10)') vkl_
30  write(*,*)
31  stop
32 end if
33 if (nstulr /= nstulr_) then
34  write(*,*)
35  write(*,'("Error(getevalu): differing nstulr for central k-point ",I8)') ik0
36  write(*,'(" current : ",I8)') nstulr
37  write(*,'(" EVALU.OUT : ",I8)') nstulr_
38  write(*,*)
39  stop
40 end if
41 end subroutine
42 
integer nstulr
Definition: modulr.f90:95
real(8), dimension(:,:), allocatable vkl
Definition: modmain.f90:471
real(8) epslat
Definition: modmain.f90:24
subroutine getevalu(ik0)
Definition: getevalu.f90:7
Definition: modulr.f90:6
integer nkpa
Definition: modulr.f90:24
real(8), dimension(:,:), allocatable evalu
Definition: modulr.f90:97