The Elk Code
 
Loading...
Searching...
No Matches
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
6subroutine getevalu(ik0)
7use modmain
8use modulr
9implicit none
10! arguments
11integer, intent(in) :: ik0
12! local variables
13integer ik,recl,nstulr_
14real(8) vkl_(3),t1
15! central k-point
16ik=(ik0-1)*nkpa+1
17! find the record length
18inquire(iolength=recl) vkl_,nstulr_,evalu(1:nstulr,ik0)
19!$OMP CRITICAL(u304)
20open(304,file='EVALU.OUT',form='UNFORMATTED',access='DIRECT',recl=recl)
21read(304,rec=ik0) vkl_,nstulr_,evalu(1:nstulr,ik0)
22close(304)
23!$OMP END CRITICAL(u304)
24t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3))
25if (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
32end if
33if (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
40end if
41end subroutine
42
subroutine getevalu(ik0)
Definition getevalu.f90:7
real(8) epslat
Definition modmain.f90:24
real(8), dimension(:,:), allocatable vkl
Definition modmain.f90:471
integer nstulr
Definition modulr.f90:94
integer nkpa
Definition modulr.f90:24
real(8), dimension(:,:), allocatable evalu
Definition modulr.f90:96