13real(4),
intent(in) :: emds(nhkmax,nkpt)
15integer nh(3),ip,n,i,j,nthd
16real(8) vl1(3),vl2(3),vl3(3)
17real(8) vc1(3),vc2(3),vc3(3),t1
19real(8),
allocatable :: x(:),wx(:),f1(:),f2(:)
21real(8),
external :: rfhkintp
28t1=sqrt(vc1(1)**2+vc1(2)**2+vc1(3)**2)
31 write(*,
'("Error(emdplot1d): zero length plotting vector")')
38 if (abs(vc1(j)) < abs(vc1(i))) i=j
42t1=dot_product(vc1,vc2)
43vc2(:)=vc2(:)-t1*vc1(:)
44t1=sqrt(vc2(1)**2+vc2(2)**2+vc2(3)**2)
55 t1=2.d0*dble(i-1)/dble(n-1)-1.d0
60open(50,file=
'EMD1D.OUT',form=
'FORMATTED')
72 vl1(:)=
vplp1d(:,ip)+x(i)*vl2(:)+x(j)*vl3(:)
75 f2(i)=dot_product(wx(:),f1(:))
77 t1=dot_product(wx(:),f2(:))
79 write(*,
'("Info(emdplot1d): done ",I6," of ",I6," points")') ip,
npp1d
80 write(50,
'(2G18.10)')
dpp1d(ip),t1
84 if (
test.and.(ip == 1))
then
85 call writetest(171,
'integrated EMD',nv=n,tol=1.d-4,rva=f2)
subroutine emdplot1d(emds)
real(8), dimension(3, 3) bvec
real(8), dimension(3, 3) binv
real(8), dimension(:,:), allocatable vvlp1d
real(8), dimension(3, 3) avec
integer, dimension(3) ngridk
real(8), dimension(:,:), allocatable vplp1d
real(8), dimension(:), allocatable dvp1d
real(8), dimension(:), allocatable dpp1d
subroutine holdthd(nloop, nthd)
subroutine writetest(id, descr, nv, iv, iva, tol, rv, rva, zv, zva)
subroutine plotpt1d(cvec, nv, np, vvl, vpl, dv, dp)
pure subroutine r3cross(x, y, z)
pure subroutine r3mv(a, x, y)
real(8) function rfhkintp(vhpl, rfhk)
subroutine wsplint(n, x, w)