Line data Source code
1 : !--------------------------------------------------------------------------------
2 : ! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
3 : ! This file is part of FLEUR and available as free software under the conditions
4 : ! of the MIT license as expressed in the LICENSE file in more detail.
5 : !--------------------------------------------------------------------------------
6 :
7 : MODULE m_mpi_bc_pot
8 : #ifdef CPP_MPI
9 : use mpi
10 : #endif
11 : CONTAINS
12 0 : SUBROUTINE mpi_bc_pot(fmpi,stars,sphhar,atoms,input,vacuum,&
13 0 : iter,fr,fpw,fz,fzxy)
14 :
15 : USE m_types
16 : IMPLICIT NONE
17 :
18 : TYPE(t_mpi),INTENT(IN) :: fmpi
19 : TYPE(t_input),INTENT(IN) :: input
20 : TYPE(t_vacuum),INTENT(IN) :: vacuum
21 : TYPE(t_stars),INTENT(IN) :: stars
22 : TYPE(t_sphhar),INTENT(IN) :: sphhar
23 : TYPE(t_atoms),INTENT(IN) :: atoms
24 :
25 : INTEGER, INTENT (INOUT) :: iter
26 :
27 : COMPLEX, INTENT (INOUT) :: fpw(stars%ng3,input%jspins)
28 : COMPLEX, INTENT (INOUT) :: fzxy(vacuum%nmzxyd,stars%ng2-1,2,input%jspins)
29 : REAL, INTENT (INOUT) :: fr(atoms%jmtd,0:sphhar%nlhd,atoms%ntype,input%jspins)
30 : REAL, INTENT (INOUT) :: fz(vacuum%nmzd,2,input%jspins)
31 :
32 : INTEGER :: n, ierr
33 : #ifdef CPP_MPI
34 0 : CALL MPI_BCAST(iter,1,MPI_INTEGER,0,fmpi%mpi_comm,ierr)
35 :
36 0 : n = stars%ng3 * input%jspins
37 0 : CALL MPI_BCAST(fpw,n,MPI_DOUBLE_COMPLEX,0,fmpi%mpi_comm,ierr)
38 0 : n = vacuum%nmzxyd * (stars%ng2-1) * 2 * input%jspins
39 0 : CALL MPI_BCAST(fzxy,n,MPI_DOUBLE_COMPLEX,0,fmpi%mpi_comm,ierr)
40 0 : n = atoms%jmtd * (sphhar%nlhd+1) * atoms%ntype * input%jspins
41 0 : CALL MPI_BCAST(fr,n,MPI_DOUBLE,0,fmpi%mpi_comm,ierr)
42 0 : n = vacuum%nmzd * 2 * input%jspins
43 0 : CALL MPI_BCAST(fz,n,MPI_DOUBLE,0,fmpi%mpi_comm,ierr)
44 : #endif
45 0 : END SUBROUTINE mpi_bc_pot
46 : END MODULE m_mpi_bc_pot
|