TABLE OF CONTENTS
ABINIT/dotproductqrc [ Functions ]
NAME
dotproductqrc
FUNCTION
compute the dot product of two vectors in reciprocal space, one being real and one being complex.
COPYRIGHT
Copyright (C) 1999-2018 ABINIT group (GMR, VO, LR, RWG) This file is distributed under the terms of the GNU General Public License, see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt . For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
INPUTS
b1(3),b2(3),b3(3)=the three primitive vectors in reciprocal space c(3)=the complex vector r(3)=the real vector
OUTPUT
dotproductqrc=The scalar product.
SOURCE
27 #if defined HAVE_CONFIG_H 28 #include "config.h" 29 #endif 30 31 function dotproductqrc(r,c,b1,b2,b3) 32 33 use defs_basis 34 35 !This section has been created automatically by the script Abilint (TD). 36 !Do not modify the following lines by hand. 37 #undef ABI_FUNC 38 #define ABI_FUNC 'dotproductqrc' 39 !End of the abilint section 40 41 implicit none 42 43 !Arguments ------------------------------------ 44 !scalars 45 complex(gwpc) :: dotproductqrc 46 !arrays 47 real(dp),intent(in) :: b1(3),b2(3),b3(3),r(3) 48 complex(gwpc),intent(in) :: c(3) 49 50 !Local variables------------------------------- 51 !scalars 52 integer :: i 53 54 ! ************************************************************************* 55 dotproductqrc=(0.0_gwp,0.0_gwp) 56 do i=1,3 57 dotproductqrc=dotproductqrc+(r(1)*b1(i)+r(2)*b2(i)+r(3)*b3(i))*& 58 & (c(1)*b1(i)+c(2)*b2(i)+c(3)*b3(i)) 59 end do 60 61 end function dotproductqrc