quantum-espresso/D3/write_aux.f90

61 lines
2.2 KiB
Fortran

!
! Copyright (C) 2001 PWSCF group
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
!
!-----------------------------------------------------------------------
subroutine write_aux (isw)
!-----------------------------------------------------------------------
!
! Writes on files partial computation of d3dyn
!
#include "machine.h"
use pwcom
use phcom
use d3com
!
implicit none
integer :: isw
!
if (isw.eq.1) then
call setv (54 * nat * nat * nat, 0.d0, d3dyn_aux1, 1)
call setv (54 * nat * nat * nat, 0.d0, d3dyn_aux2, 1)
call setv (54 * nat * nat * nat, 0.d0, d3dyn_aux3, 1)
call setv (54 * nat * nat * nat, 0.d0, d3dyn_aux4, 1)
call setv (54 * nat * nat * nat, 0.d0, d3dyn_aux5, 1)
call setv (54 * nat * nat * nat, 0.d0, d3dyn_aux6, 1)
call setv (54 * nat * nat * nat, 0.d0, d3dyn_aux7, 1)
call setv (54 * nat * nat * nat, 0.d0, d3dyn_aux8, 1)
call setv (54 * nat * nat * nat, 0.d0, d3dyn_aux9, 1)
elseif (isw.eq.2) then
call ZCOPY (27 * nat * nat * nat, d3dyn, 1, d3dyn_aux4, 1)
call DAXPY (2 * 27 * nat * nat * nat, - 1.d0, d3dyn_aux5, 1, &
d3dyn_aux4, 1)
call DAXPY (2 * 27 * nat * nat * nat, - 1.d0, d3dyn_aux6, 1, &
d3dyn_aux4, 1)
call DAXPY (2 * 27 * nat * nat * nat, - 1.d0, d3dyn_aux7, 1, &
d3dyn_aux4, 1)
call DAXPY (2 * 27 * nat * nat * nat, - 1.d0, d3dyn_aux8, 1, &
d3dyn_aux4, 1)
call DAXPY (2 * 27 * nat * nat * nat, - 1.d0, d3dyn_aux9, 1, &
d3dyn_aux4, 1)
call DAXPY (2 * 27 * nat * nat * nat, - 1.d0, d3dyn_aux1, 1, &
d3dyn_aux4, 1)
call writed3dyn_5 (d3dyn_aux1, 'd3mat.1', - 1)
call writed3dyn_5 (d3dyn_aux4, 'd3mat.4', - 1)
call writed3dyn_5 (d3dyn_aux5, 'd3mat.5', - 1)
call writed3dyn_5 (d3dyn_aux6, 'd3mat.6', - 1)
call writed3dyn_5 (d3dyn_aux7, 'd3mat.7', - 1)
call writed3dyn_5 (d3dyn_aux8, 'd3mat.8', - 1)
call writed3dyn_5 (d3dyn_aux9, 'd3mat.9', - 1)
call writed3dyn_5 (d3dyn, 'd3mat.ns', - 1)
elseif (isw.eq.3) then
call writed3dyn_5 (d3dyn, 'd3mat.sy', 1)
endif
return
end subroutine write_aux