LCOV - code coverage report
Current view: top level - mpi - mpi_bc_all.F90 (source / functions) Hit Total Coverage
Test: combined.info Lines: 213 233 91.4 %
Date: 2019-09-08 04:53:50 Functions: 2 2 100.0 %

          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_all
       8             : CONTAINS
       9          76 :   SUBROUTINE mpi_bc_all(&
      10             :        mpi,stars,sphhar,atoms,obsolete,sym,&
      11             :        kpts,DIMENSION,input,field,banddos,sliceplot,&
      12             :        vacuum,cell,enpara,noco,oneD,&
      13             :         hybrid)
      14             :     !
      15             :     !**********************************************************************
      16             :     USE m_types
      17             :     IMPLICIT NONE
      18             :     INCLUDE 'mpif.h'
      19             :     TYPE(t_mpi),INTENT(INOUT)        :: mpi
      20             :     TYPE(t_dimension),INTENT(INOUT)  :: dimension
      21             :     TYPE(t_oneD),INTENT(INOUT)       :: oneD
      22             :     TYPE(t_hybrid),INTENT(INOUT)     :: hybrid
      23             :     TYPE(t_enpara),INTENT(INOUT)     :: enpara
      24             :     TYPE(t_obsolete),INTENT(INOUT)   :: obsolete
      25             :     TYPE(t_banddos),INTENT(INOUT)    :: banddos
      26             :     TYPE(t_sliceplot),INTENT(INOUT)  :: sliceplot
      27             :     TYPE(t_input),INTENT(INOUT)      :: input
      28             :     TYPE(t_field),INTENT(INOUT)      :: field
      29             :     TYPE(t_vacuum),INTENT(INOUT)     :: vacuum
      30             :     TYPE(t_noco),INTENT(INOUT)       :: noco
      31             :     TYPE(t_sym),INTENT(INOUT)        :: sym
      32             :     TYPE(t_stars),INTENT(INOUT)      :: stars
      33             :     TYPE(t_cell),INTENT(INOUT)       :: cell
      34             :     TYPE(t_kpts),INTENT(INOUT)       :: kpts
      35             :     TYPE(t_sphhar),INTENT(INOUT)     :: sphhar
      36             :     TYPE(t_atoms),INTENT(INOUT)      :: atoms
      37             :     !     .. Scalar Arguments ..
      38             :     INTEGER n
      39             :     REAL rdum
      40             :     !     .. Local Arrays ..
      41             :     INTEGER i(42),ierr(3)
      42             :     REAL    r(34)
      43             :     LOGICAL l(46)
      44             :     !     ..
      45             :     !     .. External Subroutines..
      46             : #ifdef CPP_MPI    
      47             :     EXTERNAL MPI_BCAST
      48             : 
      49          76 :     call priv_mpi_bc_stars(mpi,stars)
      50             :     
      51          76 :     IF (mpi%irank.EQ.0) THEN
      52          38 :        i(1)=1 ; i(2)=input%coretail_lmax;i(3)=atoms%ntype  ; i(5)=1
      53          38 :        i(7)=stars%ng2 ; i(8)=stars%ng3 ; i(9)=vacuum%nmz ; i(10)=vacuum%nmzxy ; i(11)=obsolete%lepr 
      54          38 :        i(12)=input%jspins ; i(13)=vacuum%nvac ; i(14)=input%itmax ; i(15)=sliceplot%kk ; i(16)=vacuum%layers
      55          38 :        i(17)=sliceplot%nnne ; i(18)=banddos%ndir ; i(19)=stars%mx1 ; i(20)=stars%mx2 ; i(21)=stars%mx3
      56          38 :        i(22)=atoms%n_u ; i(23) = sym%nop2 ; i(24) = sym%nsymt ; i(25) = stars%kimax ; i(26) = stars%kimax2
      57          38 :        i(27)=vacuum%nstars ; i(28)=vacuum%nstm ; i(29)=oneD%odd%nq2 ; i(30)=oneD%odd%nop
      58          38 :        i(31)=input%gw ; i(32)=input%gw_neigd ; i(33)=hybrid%ewaldlambda ; i(34)=hybrid%lexp 
      59          38 :        i(35)=hybrid%bands1 ; i(36)=input%maxiter ; i(37)=input%imix ; i(38)=banddos%orbCompAtom
      60          38 :        i(39)=input%kcrel;i(40)=banddos%s_cell_x;i(41)=banddos%s_cell_y;i(42)=banddos%s_cell_z
      61             : 
      62          38 :        r(1)=cell%omtil ; r(2)=cell%area ; r(3)=vacuum%delz ; r(4)=cell%z1 ; r(5)=input%alpha
      63          38 :        r(6)=sliceplot%e1s ; r(7)=sliceplot%e2s ; r(8)=noco%theta; r(9)=noco%phi; r(10)=vacuum%tworkf 
      64          38 :        r(11)=vacuum%locx(1) ; r(12)=vacuum%locx(2); r(13)=vacuum%locy(1) ; r(14)=vacuum%locy(2)
      65          38 :        r(15)=input%sigma ; r(16)=field%efield%zsigma ; r(17)=noco%mix_b; r(18)=cell%vol
      66          38 :        r(19)=cell%volint ; r(20)=hybrid%gcutm1 ; r(21)=hybrid%tolerance1 ; r(22)=0.0
      67          38 :        r(23)=0.0 ; r(24)=input%delgau ; r(25)=input%tkb ; r(26)=field%efield%vslope
      68          38 :        r(27)=0.0 ; r(28)=0.0!r(27)=aMix_VHSE() ; r(28)=omega_VHSE()
      69          38 :        r(29)=input%minDistance ; r(30)=obsolete%chng ; r(31)=input%ldauMixParam ; r(32)=input%ldauSpinf
      70          38 :        r(33)=banddos%e_mcd_lo ; r(34)=banddos%e_mcd_up
      71             : 
      72          38 :        l(1)=input%eonly ; l(2)=input%l_useapw ; l(3)=input%secvar ; l(4)=sym%zrfs ; l(5)=input%film
      73          38 :        l(6)=sym%invs ; l(7)=sym%invs2 ; l(8)=input%l_bmt ; l(9)=input%l_f ; l(10)=input%cdinf
      74          38 :        l(11)=banddos%dos ; l(12) = hybrid%l_hybrid ; l(13)=banddos%vacdos ; l(14)=input%integ ; l(15)=sliceplot%iplot
      75          38 :        l(16)=input%strho ; l(17)=input%swsp ; l(18)=input%lflip 
      76          38 :        l(21)=input%pallst ; l(22)=sliceplot%slice ; l(23)=noco%l_soc ; l(24)=vacuum%starcoeff
      77          38 :        l(25)=noco%l_noco ; l(26)=noco%l_ss; l(27)=noco%l_mperp; l(28)=noco%l_constr
      78          38 :        l(29)=oneD%odd%d1 ; l(32)=input%ctail ; l(33)=banddos%l_orb
      79          38 :        l(34)=banddos%l_mcd ; l(35)=banddos%unfoldband ; l(36)=noco%l_mtNocoPot
      80          38 :        l(38)=field%efield%l_segmented
      81          38 :        l(39)=sym%symor ; l(40)=input%frcor ; l(41)=input%tria ; l(42)=field%efield%dirichlet
      82          38 :        l(43)=field%efield%l_dirichlet_coeff ; l(44)=input%l_coreSpec ; l(45)=input%ldauLinMix
      83          38 :        l(46)=noco%l_spav
      84             :     ENDIF
      85             :     !
      86          76 :     CALL MPI_BCAST(i,SIZE(i),MPI_INTEGER,0,mpi%mpi_comm,ierr)
      87          76 :     hybrid%bands1=i(35) ;  input%imix=i(37);input%maxiter=i(36)
      88          76 :     input%gw=i(31) ; input%gw_neigd=i(32) ; hybrid%ewaldlambda=i(33) ; hybrid%lexp=i(34)
      89          76 :     vacuum%nstars=i(27) ; vacuum%nstm=i(28) ; oneD%odd%nq2=i(29) ; oneD%odd%nop=i(30)
      90          76 :     atoms%n_u=i(22) ; sym%nop2=i(23) ; sym%nsymt = i(24) 
      91          76 :     sliceplot%nnne=i(17) ; banddos%ndir=i(18) ; stars%mx1=i(19) ; stars%mx2=i(20) ; stars%mx3=i(21)
      92          76 :     input%jspins=i(12) ; vacuum%nvac=i(13) ; input%itmax=i(14) ; sliceplot%kk=i(15) ; vacuum%layers=i(16)
      93          76 :     stars%ng2=i(7) ; stars%ng3=i(8) ; vacuum%nmz=i(9) ; vacuum%nmzxy=i(10) ; obsolete%lepr=i(11)
      94          76 :      atoms%ntype=i(3) ; banddos%orbCompAtom=i(38);banddos%s_cell_x=i(40);banddos%s_cell_y=i(41);banddos%s_cell_z=i(42)
      95          76 :      input%coretail_lmax=i(2) ; input%kcrel=i(39)
      96          76 :      stars%kimax=i(25);stars%kimax2=i(26)
      97             :     !
      98          76 :     CALL MPI_BCAST(r,SIZE(r),MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
      99          76 :     input%minDistance=r(29) ; obsolete%chng=r(30)
     100          76 :     input%delgau=r(24) ; input%tkb=r(25) ; field%efield%vslope=r(26)
     101          76 :     cell%volint=r(19) ; hybrid%gcutm1=r(20) ; hybrid%tolerance1=r(21) 
     102          76 :     input%sigma=r(15) ; field%efield%zsigma=r(16); noco%mix_b=r(17); cell%vol=r(18);
     103          76 :     vacuum%locx(1)=r(11); vacuum%locx(2)=r(12); vacuum%locy(1)=r(13); vacuum%locy(2)=r(14)
     104          76 :     sliceplot%e1s=r(6) ; sliceplot%e2s=r(7) ; noco%theta=r(8); noco%phi=r(9); vacuum%tworkf=r(10)
     105          76 :     cell%omtil=r(1) ; cell%area=r(2) ; vacuum%delz=r(3) ; cell%z1=r(4) ; input%alpha=r(5)
     106          76 :     input%ldauMixParam=r(31) ; input%ldauSpinf=r(32) ; banddos%e_mcd_lo=r(33) ; banddos%e_mcd_up=r(34)
     107             :     !
     108          76 :     CALL MPI_BCAST(l,SIZE(l),MPI_LOGICAL,0,mpi%mpi_comm,ierr)
     109          76 :     field%efield%l_dirichlet_coeff = l(43) ; input%l_useapw=l(2)
     110          76 :     sym%symor=l(39) ; input%frcor=l(40) ; input%tria=l(41) ; field%efield%dirichlet = l(42)
     111          76 :      field%efield%l_segmented=l(38)
     112          76 :     oneD%odd%d1=l(29) ; input%ctail=l(32)
     113          76 :     noco%l_noco=l(25) ; noco%l_ss=l(26) ; noco%l_mperp=l(27) ; noco%l_constr=l(28)
     114          76 :     input%pallst=l(21) ; sliceplot%slice=l(22) ; noco%l_soc=l(23) ; vacuum%starcoeff=l(24)
     115          76 :     input%strho=l(16) ; input%swsp=l(17) ; input%lflip=l(18)  
     116          76 :     banddos%dos=l(11) ; hybrid%l_hybrid=l(12) ; banddos%vacdos=l(13) ; banddos%l_orb=l(33) ; banddos%l_mcd=l(34)
     117          76 :     input%integ=l(14) ; sliceplot%iplot=l(15)
     118          76 :     sym%invs=l(6) ; sym%invs2=l(7) ; input%l_bmt=l(8) ; input%l_f=l(9) ; input%cdinf=l(10)
     119          76 :     input%eonly=l(1)  ; input%secvar=l(3) ; sym%zrfs=l(4) ; input%film=l(5)
     120          76 :     field%efield%l_segmented = l(38) ; sym%symor=l(39); field%efield%dirichlet = l(40)
     121          76 :     field%efield%l_dirichlet_coeff = l(41) ; input%l_coreSpec=l(44) ; input%ldauLinMix=l(45)
     122          76 :     banddos%unfoldband=l(35)
     123          76 :     noco%l_mtNocoPot=l(36)
     124          76 :     noco%l_spav=l(46)
     125             :     !
     126             :     ! -> Broadcast the arrays:
     127          76 :     IF (field%efield%l_segmented) THEN
     128           0 :        IF (.NOT. ALLOCATED (field%efield%rhoEF))&
     129           0 :             &    ALLOCATE (field%efield%rhoEF(3*stars%mx1*3*stars%mx2-1,vacuum%nvac))
     130           0 :        n = (3*stars%mx1*3*stars%mx2-1)*vacuum%nvac
     131           0 :        CALL MPI_BCAST (field%efield%rhoEF,n,MPI_REAL,0,mpi%mpi_comm,ierr)
     132             :     END IF
     133          76 :     IF (field%efield%l_dirichlet_coeff) THEN
     134           6 :        IF (.NOT. ALLOCATED (field%efield%C1)) THEN
     135           6 :           ALLOCATE (field%efield%C1(stars%ng2-1))
     136           6 :           ALLOCATE (field%efield%C2(stars%ng2-1))
     137             :        END IF
     138           6 :        n = stars%ng2-1
     139           6 :        CALL MPI_BCAST (field%efield%C1,n,MPI_REAL,0,mpi%mpi_comm,ierr)
     140           6 :        CALL MPI_BCAST (field%efield%C2,n,MPI_REAL,0,mpi%mpi_comm,ierr)
     141             :     END IF
     142             :    
     143             :    
     144          76 :     n = sphhar%memd*(sphhar%nlhd+1)*sphhar%ntypsd
     145          76 :     CALL MPI_BCAST(sphhar%clnu,n,MPI_DOUBLE_COMPLEX,0,mpi%mpi_comm,ierr)
     146          76 :     CALL MPI_BCAST(sphhar%mlh,n,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     147          76 :     CALL MPI_BCAST(sphhar%nlh,sphhar%ntypsd,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     148          76 :     n = (sphhar%nlhd+1)*sphhar%ntypsd
     149          76 :     CALL MPI_BCAST(sphhar%nmem,n,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     150          76 :     CALL MPI_BCAST(sphhar%llh,n,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     151          76 :     CALL MPI_BCAST(atoms%jri,atoms%ntype,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     152          76 :     CALL MPI_BCAST(atoms%ncv,atoms%ntype,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     153          76 :     CALL MPI_BCAST(atoms%ntypsy,atoms%nat,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     154          76 :     CALL MPI_BCAST(atoms%neq,atoms%ntype,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     155          76 :     CALL MPI_BCAST(atoms%lnonsph,atoms%ntype,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     156          76 :     CALL MPI_BCAST(atoms%lmax,atoms%ntype,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     157          76 :     CALL MPI_BCAST(atoms%invsat,atoms%nat,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     158          76 :     CALL MPI_BCAST(sym%invsatnr,atoms%nat,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     159          76 :     CALL MPI_BCAST(atoms%ngopr,atoms%nat,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     160          76 :     CALL MPI_BCAST(sym%mrot,9*sym%nop,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     161             :    
     162          76 :     n = (2*stars%mx1+1)*(2*stars%mx2+1)*(2*stars%mx3+1)
     163          76 :     CALL MPI_BCAST(input%ellow,1,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     164          76 :     CALL MPI_BCAST(input%elup,1,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     165          76 :     CALL MPI_BCAST(input%rkmax,1,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     166          76 :     CALL MPI_BCAST(atoms%rmt,atoms%ntype,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     167          76 :     CALL MPI_BCAST(atoms%volmts,atoms%ntype,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     168          76 :     CALL MPI_BCAST(atoms%dx,atoms%ntype,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     169          76 :     CALL MPI_BCAST(enpara%evac,2*input%jspins*1,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     170          76 :     CALL MPI_BCAST(enpara%evac0,2*input%jspins*1,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     171          76 :     CALL MPI_BCAST(cell%amat,9,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     172          76 :     CALL MPI_BCAST(cell%bmat,9,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     173          76 :     CALL MPI_BCAST(cell%bbmat,9,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     174          76 :     CALL MPI_BCAST(atoms%taual,3*atoms%nat,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     175          76 :     CALL MPI_BCAST(atoms%pos,3*atoms%nat,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     176          76 :     CALL MPI_BCAST(sym%tau,3*sym%nop,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     177          76 :     n = (atoms%lmaxd+1)*atoms%ntype*input%jspins*1
     178          76 :     CALL MPI_BCAST(enpara%el0,n,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     179          76 :     n = atoms%nlod*atoms%ntype*input%jspins
     180          76 :     CALL MPI_BCAST(enpara%ello0,n,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     181          76 :     CALL MPI_BCAST(enpara%qn_el,SIZE(enpara%qn_el),MPI_INTEGER,0,mpi%mpi_comm,ierr)
     182          76 :     CALL MPI_BCAST(enpara%qn_ello,SIZE(enpara%qn_ello),MPI_INTEGER,0,mpi%mpi_comm,ierr)
     183             : 
     184             : 
     185          76 :     CALL MPI_BCAST(atoms%rmsh,atoms%jmtd*atoms%ntype,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     186             :     !
     187          76 :     CALL MPI_BCAST(kpts%nkpt,1,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     188          76 :     CALL MPI_BCAST(kpts%nkptf,1,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     189          76 :     CALL MPI_BCAST(kpts%bk,3*kpts%nkpt,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     190          76 :     CALL MPI_BCAST(kpts%wtkpt,kpts%nkpt,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     191          76 :     CALL MPI_BCAST(kpts%ntetra,kpts%ntet,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     192          76 :     CALL MPI_BCAST(kpts%voltet,kpts%ntet,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     193             :     !
     194             : 
     195          76 :     n = atoms%nat*sym%nop
     196          76 :     CALL MPI_BCAST(sym%invarop,n,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     197          76 :     CALL MPI_BCAST(sym%multab,sym%nop**2,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     198          76 :     CALL MPI_BCAST(sym%invarind,atoms%nat,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     199          76 :     CALL MPI_BCAST(sym%invtab,sym%nop,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     200          76 :     CALL MPI_BCAST(sym%invsatnr,atoms%nat,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     201          76 :     CALL MPI_BCAST(vacuum%izlay,vacuum%layerd*2,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     202             :  
     203          76 :     CALL MPI_BCAST(atoms%zatom,atoms%ntype,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     204          76 :     CALL MPI_BCAST(field%efield%sig_b,2,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     205          76 :     CALL MPI_BCAST(input%zelec,1,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     206          76 :     CALL MPI_BCAST(atoms%ncst,atoms%ntype,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     207          76 :     CALL MPI_BCAST(atoms%nlo,atoms%ntype,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     208          76 :     n =  atoms%nlod*atoms%ntype
     209          76 :     CALL MPI_BCAST(atoms%llo,n,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     210          76 :     CALL MPI_BCAST(atoms%ulo_der,n,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     211          76 :     CALL MPI_BCAST(atoms%l_dulo,n,MPI_LOGICAL,0,mpi%mpi_comm,ierr)
     212          76 :     n = (atoms%llod+1)*atoms%ntype
     213          76 :     CALL MPI_BCAST(atoms%lo1l,n,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     214          76 :     CALL MPI_BCAST(atoms%nlol,n,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     215          76 :     n = input%jspins*atoms%ntype
     216          76 :     CALL MPI_BCAST(enpara%skiplo,n,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     217          76 :     CALL MPI_BCAST(noco%alphInit,atoms%ntype,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     218          76 :     CALL MPI_BCAST(noco%alph,atoms%ntype,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     219          76 :     CALL MPI_BCAST(noco%beta,atoms%ntype,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     220          76 :     CALL MPI_BCAST(noco%b_con,atoms%ntype*2,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     221          76 :     CALL MPI_BCAST(noco%l_relax,atoms%ntype,MPI_LOGICAL,0,mpi%mpi_comm,ierr)
     222          76 :     CALL MPI_BCAST(atoms%l_geo,atoms%ntype,MPI_LOGICAL,0,mpi%mpi_comm,ierr)
     223          76 :     CALL MPI_BCAST(noco%qss,3,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     224          76 :     CALL MPI_BCAST(atoms%lda_u(:)%l,atoms%n_u,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     225          76 :     CALL MPI_BCAST(atoms%lda_u(:)%u,atoms%n_u,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     226          76 :     CALL MPI_BCAST(atoms%lda_u(:)%j,atoms%n_u,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     227          76 :     CALL MPI_BCAST(atoms%lda_u(:)%l_amf,atoms%n_u,MPI_LOGICAL,0,mpi%mpi_comm,ierr)
     228          76 :     CALL MPI_BCAST(atoms%lda_u(:)%atomType,atoms%n_u,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     229          76 :     CALL MPI_BCAST(atoms%lda_u(:)%phi,atoms%n_u,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     230          76 :     CALL MPI_BCAST(atoms%lda_u(:)%theta,atoms%n_u,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     231          76 :     CALL MPI_BCAST(atoms%lapw_l,atoms%ntype,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     232             :  
     233          76 :     n = 7*7*3*sym%nop
     234          76 :     CALL MPI_BCAST(sym%d_wgn,n,MPI_DOUBLE_COMPLEX,0,mpi%mpi_comm,ierr)
     235          76 :     CALL MPI_BCAST(oneD%nstr1,oneD%odd%n2d,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     236          76 :     CALL MPI_BCAST(oneD%tau1,3*oneD%odd%nop,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     237          76 :     IF (oneD%odd%d1) THEN
     238           0 :        CALL MPI_BCAST(oneD%tau1,3*oneD%odd%nop,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     239           0 :        CALL MPI_BCAST(oneD%mrot1,9*oneD%odd%nop,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     240           0 :        CALL MPI_BCAST(oneD%kv1,2*oneD%odd%n2d,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     241           0 :        CALL MPI_BCAST(oneD%ngopr1,atoms%nat,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     242           0 :        CALL MPI_BCAST(oneD%igfft1,oneD%odd%nn2d*2,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     243           0 :        CALL MPI_BCAST(oneD%pgfft1,oneD%odd%nn2d,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     244           0 :        n = (2*stars%mx3 + 1)*(2*ONED%ODD%M +1)
     245           0 :        CALL MPI_BCAST(oneD%ig1,n,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     246           0 :        CALL MPI_BCAST(oneD%invtab1,oneD%odd%nop,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     247           0 :        CALL MPI_BCAST(oneD%multab1,2*oneD%odd%nop,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     248             :     ENDIF
     249             :     !--- HF<
     250          76 :     CALL MPI_BCAST(kpts%nkpt3,3,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     251          76 :     IF(hybrid%l_hybrid) THEN
     252           0 :        CALL MPI_BCAST(hybrid%lcutwf,atoms%ntype,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     253           0 :        CALL MPI_BCAST(hybrid%select1,4*atoms%ntype,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     254           0 :        CALL MPI_BCAST(hybrid%lcutm1,atoms%ntype,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     255             :     END IF
     256             :     !--- HF>
     257             : 
     258          76 :     IF (mpi%irank>0) THEN
     259          38 :        ALLOCATE(noco%socscale(atoms%ntype))
     260             :     ENDIF
     261          76 :     CALL MPI_BCAST(noco%socscale,atoms%ntype,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     262             : 
     263          76 :     IF(input%l_inpXML) THEN
     264          48 :        n = dimension%nstd*atoms%ntype
     265          48 :        CALL MPI_BCAST(atoms%numStatesProvided,atoms%ntype,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     266          48 :        CALL MPI_BCAST(atoms%coreStateOccs,2*n,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     267          48 :        CALL MPI_BCAST(atoms%coreStateNprnc,n,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     268          48 :        CALL MPI_BCAST(atoms%coreStateKappa,n,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     269             : 
     270          48 :        CALL MPI_BCAST(kpts%posScale,1,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     271          48 :        CALL MPI_BCAST(kpts%numSpecialPoints,1,MPI_INTEGER,0,mpi%mpi_comm,ierr)
     272          48 :        CALL MPI_BCAST(kpts%specialPoints,3*kpts%numSpecialPoints,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     273             :     END IF
     274             :  
     275          76 :     IF(banddos%unfoldband) THEN
     276           0 :        IF(mpi%irank.NE.0) THEN
     277           0 :           ALLOCATE(kpts%sc_list(13,kpts%nkpt))
     278             :        END IF
     279           0 :        CALL MPI_BCAST(kpts%sc_list,13*kpts%nkpt,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr)
     280             :     END IF
     281             : 
     282          76 :     RETURN
     283             : #endif
     284             :   END SUBROUTINE mpi_bc_all
     285             : 
     286          76 :   SUBROUTINE priv_mpi_bc_stars(mpi,stars)
     287             :     USE m_types
     288             :     USE m_mpi_bc_tool
     289             :     IMPLICIT NONE
     290             :     TYPE(t_mpi),INTENT(in)::mpi
     291             :     TYPE(t_stars),INTENT(inout)::stars
     292             :     include 'mpif.h'
     293             : 
     294             :     INTEGER :: i(18),ierr,ft2_gf_dim
     295             :     
     296          76 :     i(1)=stars%ng2 ; i(2)=stars%ng3 ; i(3)=stars%mx1 ; i(4)=stars%mx2 ; i(5)=stars%mx3
     297          76 :     i(6) = stars%kimax ; i(7) = stars%kimax2 ; i(8)=size(stars%ft2_gfy)
     298          76 :     i(9) = stars%kq1_fft;i(10) = stars%kq2_fft;i(11) = stars%kq3_fft;i(12)=stars%kmxq_fft
     299          76 :     i(13)= stars%kxc1_fft;i(14)= stars%kxc2_fft;i(15)= stars%kxc3_fft
     300          76 :     i(16)= stars%ng3_fft;i(17)= stars%kmxxc_fft;i(18)= stars%nxc3_fft
     301          76 :     CALL MPI_BCAST(i,SIZE(i),MPI_INTEGER,0,mpi%mpi_comm,ierr)
     302          76 :     stars%ng2=i(1) ; stars%ng3=i(2) ; stars%mx1=i(3) ; stars%mx2=i(4) ; stars%mx3=i(5)
     303          76 :     stars%kimax=i(6) ;  stars%kimax2=i(7) ; ft2_gf_dim=i(8)
     304          76 :     stars%kq1_fft=i(9);stars%kq2_fft=i(10); stars%kq3_fft=i(11);stars%kmxq_fft=i(12)
     305          76 :     stars%kxc1_fft=i(13);stars%kxc2_fft=i(14);stars%kxc3_fft=i(15)
     306          76 :     stars%ng3_fft=i(16);stars%kmxxc_fft=i(17);stars%nxc3_fft=i(18)
     307             : 
     308             : 
     309          76 :     CALL mpi_bc(stars%ustep,0,mpi%mpi_comm)
     310          76 :     CALL mpi_bc(stars%ig2,0,mpi%mpi_comm)
     311          76 :     CALL mpi_bc(stars%ig,0,mpi%mpi_comm)
     312          76 :     CALL mpi_bc(stars%rgphs,0,mpi%mpi_comm)
     313          76 :     CALL mpi_bc(stars%sk3,0,mpi%mpi_comm)
     314          76 :     CALL mpi_bc(stars%kv2,0,mpi%mpi_comm)
     315          76 :     CALL mpi_bc(stars%kv3,0,mpi%mpi_comm)
     316          76 :     CALL mpi_bc(stars%nstr,0,mpi%mpi_comm)
     317          76 :     CALL mpi_bc(stars%nstr2,0,mpi%mpi_comm)
     318          76 :     CALL mpi_bc(stars%igfft,0,mpi%mpi_comm)
     319          76 :     CALL mpi_bc(stars%pgfft,0,mpi%mpi_comm)
     320          76 :     CALL mpi_bc(stars%igfft2,0,mpi%mpi_comm)
     321          76 :     CALL mpi_bc(stars%sk2,0,mpi%mpi_comm)
     322          76 :     CALL mpi_bc(stars%phi2,0,mpi%mpi_comm)
     323          76 :     CALL mpi_bc(stars%ufft,0,mpi%mpi_comm)
     324          76 :     CALL mpi_bc(stars%igq2_fft,0,mpi%mpi_comm)
     325          76 :     CALL mpi_bc(stars%igq_fft,0,mpi%mpi_comm)
     326          76 :     CALL mpi_bc(stars%pgfft2,0,mpi%mpi_comm)
     327          76 :     CALL mpi_bc(stars%ft2_gfx,0,mpi%mpi_comm)
     328          76 :     CALL mpi_bc(stars%ft2_gfy,0,mpi%mpi_comm)
     329          76 :   END SUBROUTINE priv_mpi_bc_stars
     330             : 
     331             : END MODULE m_mpi_bc_all

Generated by: LCOV version 1.13