TABLE OF CONTENTS


ABINIT/gam_mult_displ [ Functions ]

[ Top ] [ Functions ]

NAME

 gam_mult_displ

FUNCTION

 This routine takes the bare gamma matrices and multiplies them
  by the displ_red matrices (related to the scalprod variable)

COPYRIGHT

 Copyright (C) 2009-2018 ABINIT group (MVer)
 This file is distributed under the terms of the
 GNU General Public Licence, see ~abinit/COPYING
 or http://www.gnu.org/copyleft/gpl.txt .
 For the initials of contributors, see ~abinit/doc/developers/contributors.txt .

INPUTS

   nbranch = number of phonon branches (3*natom)
   displ_red = phonon mode displacement vectors in reduced coordinates.
   gam_bare = bare gamma matrices before multiplication

OUTPUT

   gam_now = output gamma matrices multiplied by displacement matrices

PARENTS

      get_tau_k,m_phgamma,mka2f,mka2f_tr,mka2f_tr_lova,mkph_linwid,nmsq_gam
      nmsq_gam_sumfs,nmsq_pure_gkk,nmsq_pure_gkk_sumfs,normsq_gkq

CHILDREN

      zgemm

SOURCE

34 #if defined HAVE_CONFIG_H
35 #include "config.h"
36 #endif
37 
38 #include "abi_common.h"
39 
40 
41 subroutine gam_mult_displ(nbranch, displ_red, gam_bare, gam_now)
42 
43  use defs_basis
44  use m_profiling_abi
45 
46 !This section has been created automatically by the script Abilint (TD).
47 !Do not modify the following lines by hand.
48 #undef ABI_FUNC
49 #define ABI_FUNC 'gam_mult_displ'
50 !End of the abilint section
51 
52  implicit none
53 
54 !Arguments -------------------------------
55  integer, intent(in)  :: nbranch
56  real(dp), intent(in)  :: displ_red(2,nbranch,nbranch)
57  real(dp), intent(in)  :: gam_bare(2,nbranch,nbranch)
58  real(dp), intent(out) :: gam_now(2,nbranch,nbranch)
59 
60 !Local variables -------------------------
61  real(dp) :: zgemm_tmp_mat(2,nbranch,nbranch)
62 
63 ! *********************************************************************
64 
65  gam_now = zero
66 
67  call zgemm('c','n',nbranch,nbranch,nbranch,cone,&
68 & displ_red,nbranch,gam_bare,&
69 & nbranch,czero,zgemm_tmp_mat,nbranch)
70 
71  call zgemm('n','n',nbranch,nbranch,nbranch,cone,&
72 & zgemm_tmp_mat,nbranch,displ_red,&
73 & nbranch,czero,gam_now,nbranch)
74 
75 end subroutine gam_mult_displ