1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl.
! This file is distributed under the terms of the GNU General Public License.
! See the file COPYING for license details.
subroutine readdyn
use modmain
use modphonon
implicit none
! local variables
logical exist
integer iq,is,js,ia,ja
integer ip,jp,i,j
real(8) a,b
character(256) fext
do iq=1,nqpt
i=0
do is=1,nspecies
do ia=1,natoms(is)
do ip=1,3
i=i+1
call dynfext(iq,is,ia,ip,fext)
inquire(file='DYN'//trim(fext),exist=exist)
if (.not.exist) then
write(*,*)
write(*,'("Error(readdyn): file not found :")')
write(*,'(A)') ' DYN'//trim(fext)
write(*,*)
stop
end if
open(50,file='DYN'//trim(fext),status='OLD',form='FORMATTED')
j=0
do js=1,nspecies
do ja=1,natoms(js)
do jp=1,3
j=j+1
read(50,*) a,b
dynq(i,j,iq)=cmplx(a,b,8)
end do
end do
end do
close(50)
end do
! end loops over atoms and species
end do
end do
! symmetrise the dynamical matrix
call dynsym(vql(:,iq),dynq(:,:,iq))
! end loop over q-vectors
end do
end subroutine
|