mirror of https://gitlab.com/QEF/q-e.git
Added warning on band plotting problems if two consecutive k-points are equal
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@9064 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
parent
e4da7012ea
commit
f3f5a1fc2d
|
@ -207,7 +207,8 @@ crossings may not work in all circumstances, though). The output is written
|
|||
to a file in a simple format that can be directly read and converted to
|
||||
plottable format by auxiliary code
|
||||
\texttt{plotband.x}. Unpredictable plots may results if k-points are not
|
||||
in sequence along lines. The code \texttt{bands.x} performs as well a
|
||||
in sequence along lines, or if two consecutive points are the same.
|
||||
The code \texttt{bands.x} performs as well a
|
||||
symmetry analysis of the band structure. For a complete input description,
|
||||
see\texttt{Doc/INPUT\_bands.*}. See Example 01, Example 04 and Example 06
|
||||
for simple band plots.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
!
|
||||
! Copyright (C) 2001-2007 Quantum ESPRESSO group
|
||||
! Copyright (C) 2001-2012 Quantum ESPRESSO group
|
||||
! This file is distributed under the terms of the
|
||||
! GNU General Public License. See the file `License'
|
||||
! in the root directory of the present distribution,
|
||||
|
@ -7,6 +7,15 @@
|
|||
!
|
||||
PROGRAM plotband
|
||||
|
||||
! reads data files produced by "bands.x", produces
|
||||
! * data file ready for plotting with gnuplot, xmgr or the like
|
||||
! * a postscript file that can be directly printed
|
||||
! Important notice:
|
||||
! - k-points processed by bands.x should be along a continuous path
|
||||
! - no two consecutive k-points should be equal (i.e.: a k-point,
|
||||
! e.g. 0,0,0, can appear more than once but not in sequence)
|
||||
! If these rules are violated, unpredictable results may follow
|
||||
|
||||
IMPLICIT NONE
|
||||
INTEGER, PARAMETER :: stdout=6
|
||||
real, ALLOCATABLE :: e(:,:), k(:,:), e_in(:), kx(:)
|
||||
|
@ -412,9 +421,9 @@ PROGRAM plotband
|
|||
DO i=1,nbnd
|
||||
IF (is_in_range(i)) THEN
|
||||
! No interpolation:
|
||||
! write (1,'(9(f8.3,1x))') ( kx(n)*xdim/kx(nks), &
|
||||
! (e(i,n)-emin)*ydim/(emax-emin),n=nks,1,-1)
|
||||
! write (1,'(i4," banda")' ) nks-1
|
||||
! write (1,'(9(f8.3,1x))') ( kx(n)*xdim/kx(nks), &
|
||||
! (e(i,n)-emin)*ydim/(emax-emin),n=nks,1,-1)
|
||||
! write (1,'(i4," banda")' ) nks-1
|
||||
! Spline interpolation with twice as many points:
|
||||
!
|
||||
ni=1
|
||||
|
@ -432,7 +441,7 @@ PROGRAM plotband
|
|||
CALL spline_interpol ( kx(ni), e_in, nf-ni+1, &
|
||||
k_interp, e_interp, n_interp )
|
||||
WRITE (1,'(9(f8.3,1x))') ( k_interp(n)*xdim/kx(nks), &
|
||||
(e_interp(n)-emin)*ydim/(emax-emin),n=n_interp,1,-1)
|
||||
(e_interp(n)-emin)*ydim/(emax-emin),n=n_interp,1,-1)
|
||||
WRITE (1,'(i4," banda")' ) n_interp-1
|
||||
ENDDO
|
||||
ENDIF
|
||||
|
@ -518,6 +527,12 @@ SUBROUTINE splint (nspline, xspline, yspline, d2y, nfit, xfit, yfit)
|
|||
INTEGER :: klo, khi, i
|
||||
real :: a, b, h
|
||||
|
||||
if (nspline==2) THEN
|
||||
print *, "n=",nspline,nfit
|
||||
print *, xspline
|
||||
print *, yspline
|
||||
print *, d2y
|
||||
end if
|
||||
klo=1
|
||||
DO i=1,nfit
|
||||
DO khi=klo+1, nspline
|
||||
|
|
Loading…
Reference in New Issue