The Elk Code
writeforces.f90
Go to the documentation of this file.
1 
2 ! Copyright (C) 2004-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl.
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 writeforces(fnum)
7 use modmain
8 implicit none
9 ! arguments
10 integer, intent(in) :: fnum
11 ! local variables
12 integer is,ia,ias
13 write(fnum,*)
14 write(fnum,'("Forces :")')
15 do is=1,nspecies
16  write(fnum,'(" species : ",I4," (",A,")")') is,trim(spsymb(is))
17  do ia=1,natoms(is)
18  ias=idxas(ia,is)
19  write(fnum,'(" atom : ",I4)') ia
20  write(fnum,'(" Hellmann-Feynman",T30,": ",3F14.8)') forcehf(:,ias)
21  write(fnum,'(" IBS",T30,": ",3F14.8)') forcetot(:,ias)-forcehf(:,ias)
22  write(fnum,'(" total force",T30,": ",3F14.8)') forcetot(:,ias)
23  write(fnum,'(" total magnitude",T30,": ",F14.8)') norm2(forcetot(1:3,ias))
24  end do
25 end do
26 end subroutine
27 
integer, dimension(maxatoms, maxspecies) idxas
Definition: modmain.f90:42
real(8), dimension(:,:), allocatable forcetot
Definition: modmain.f90:993
real(8), dimension(:,:), allocatable forcehf
Definition: modmain.f90:991
integer, dimension(maxspecies) natoms
Definition: modmain.f90:36
subroutine writeforces(fnum)
Definition: writeforces.f90:7
integer nspecies
Definition: modmain.f90:34
character(64), dimension(maxspecies) spsymb
Definition: modmain.f90:78