13 real(4),
intent(in) :: emds(nhkmax,nkpt)
15 integer nh(3),ip,n,i,j,nthd
16 real(8) vl1(3),vl2(3),vl3(3)
17 real(8) vc1(3),vc2(3),vc3(3),t1
19 real(8),
allocatable :: x(:),wx(:),f1(:),f2(:)
21 real(8),
external :: rfhkintp
28 t1=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
42 t1=dot_product(vc1,vc2)
43 vc2(:)=vc2(:)-t1*vc1(:)
44 t1=sqrt(vc2(1)**2+vc2(2)**2+vc2(3)**2)
52 n=2*maxval(nh(:)*
ngridk(:))
55 t1=2.d0*dble(i-1)/dble(n-1)-1.d0
60 open(50,file=
'EMD1D.OUT',form=
'FORMATTED')
72 vl1(:)=
vplp1d(:,ip)+x(i)*vl2(:)+x(j)*vl3(:)
73 f1(j)=rfhkintp(vl1,emds)
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 writetest(id, descr, nv, iv, iva, tol, rv, rva, zv, zva)
real(8), dimension(:), allocatable dpp1d
real(8), dimension(:), allocatable dvp1d
real(8), dimension(3, 3) avec
integer, dimension(3) ngridk
subroutine plotpt1d(cvec, nv, np, vvl, vpl, dv, dp)
real(8), dimension(3, 3) bvec
real(8), dimension(3, 3) binv
real(8), dimension(:,:), allocatable vvlp1d
subroutine holdthd(nloop, nthd)
pure subroutine r3cross(x, y, z)
subroutine wsplint(n, x, w)
pure subroutine r3mv(a, x, y)
real(8), dimension(:,:), allocatable vplp1d
subroutine emdplot1d(emds)