9subroutine reciplat(avec,bvec,omega,omegabz)
32real(8),
intent(in) :: avec(3,3)
33real(8),
intent(out) :: bvec(3,3),omega,omegabz
35real(8),
parameter :: twopi=6.2831853071795864769d0
37call r3cross(avec(:,2),avec(:,3),bvec(:,1))
38call r3cross(avec(:,3),avec(:,1),bvec(:,2))
39call r3cross(avec(:,1),avec(:,2),bvec(:,3))
40t1=avec(1,1)*bvec(1,1)+avec(2,1)*bvec(2,1)+avec(3,1)*bvec(3,1)
43if (omega < 1.d-6)
then
45 write(*,
'("Error(reciplat) omega too small : ",G18.10)') omega
46 write(*,
'(" Lattice vectors may be collinear")')
50bvec(:,:)=(twopi/t1)*bvec(:,:)
52omegabz=(twopi**3)/omega