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
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
getevalu
subroutine getevalu(ik0)
Definition
getevalu.f90:7
modmain
Definition
modmain.f90:6
modmain::epslat
real(8) epslat
Definition
modmain.f90:24
modmain::vkl
real(8), dimension(:,:), allocatable vkl
Definition
modmain.f90:471
modulr
Definition
modulr.f90:6
modulr::nstulr
integer nstulr
Definition
modulr.f90:94
modulr::nkpa
integer nkpa
Definition
modulr.f90:24
modulr::evalu
real(8), dimension(:,:), allocatable evalu
Definition
modulr.f90:96
getevalu.f90
Generated by
1.9.8