The Elk Code
 
Loading...
Searching...
No Matches
rdmeval.f90
Go to the documentation of this file.
1
2! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross.
3! This file is distributed under the terms of the GNU General Public License.
4! See the file COPYING for license details.
5
6!BOP
7! !ROUTINE: rdmeval
8! !INTERFACE:
9subroutine rdmeval
10! !USES:
11use modmain
12use modrdm
13! !DESCRIPTION:
14! RDMFT eigenvalues are determined by calculating the derivative of the total
15! energy with respect to the occupation number at half the maximum occupancy
16! ($n_{\rm max}/2$).
17!
18! !REVISION HISTORY:
19! Created 2009 (Sharma)
20!EOP
21!BOC
22implicit none
23! local variables
24integer ik,ist
25real(8) t1
26! allocatable arrays
27real(8), allocatable :: dedn(:,:)
28allocate(dedn(nstsv,nkpt))
29do ik=1,nkpt
30 do ist=1,nstsv
31 t1=occsv(ist,ik)
32 occsv(ist,ik)=occmax/2.d0
33 call rdmdedn(dedn)
34 evalsv(ist,ik)=-dedn(ist,ik)
35 occsv(ist,ik)=t1
36 end do
37 call putevalsv(filext,ik,evalsv(:,ik))
38end do
39deallocate(dedn)
40end subroutine
41!EOC
42
character(256) filext
Definition modmain.f90:1300
integer nkpt
Definition modmain.f90:461
integer nstsv
Definition modmain.f90:886
real(8) occmax
Definition modmain.f90:898
real(8), dimension(:,:), allocatable occsv
Definition modmain.f90:902
real(8), dimension(:,:), allocatable evalsv
Definition modmain.f90:918
subroutine putevalsv(fext, ik, evalsv_)
Definition putevalsv.f90:7
subroutine rdmdedn(dedn)
Definition rdmdedn.f90:10
subroutine rdmeval
Definition rdmeval.f90:10