TABLE OF CONTENTS


ABINIT/dotproductqrc [ Functions ]

[ Top ] [ 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