mirror of https://gitlab.com/QEF/q-e.git
A general cleanup of the phonon parallelism. Now the mp_bcast is done
within a single image. git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@6178 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
parent
c6b5f500a2
commit
805a8682ff
|
@ -16,6 +16,7 @@ subroutine bcast_ph_input ( )
|
||||||
#ifdef __PARA
|
#ifdef __PARA
|
||||||
|
|
||||||
use mp, only: mp_bcast
|
use mp, only: mp_bcast
|
||||||
|
USE mp_global, only : intra_image_comm
|
||||||
USE control_ph, ONLY : start_irr, last_irr, start_q, last_q, nmix_ph, &
|
USE control_ph, ONLY : start_irr, last_irr, start_q, last_q, nmix_ph, &
|
||||||
niter_ph, lnoloc, alpha_mix, tr2_ph, lrpa, recover, &
|
niter_ph, lnoloc, alpha_mix, tr2_ph, lrpa, recover, &
|
||||||
ldisp, elph, reduce_io, zue, zeu, epsil, trans, &
|
ldisp, elph, reduce_io, zue, zeu, epsil, trans, &
|
||||||
|
@ -37,59 +38,59 @@ subroutine bcast_ph_input ( )
|
||||||
!
|
!
|
||||||
! logicals
|
! logicals
|
||||||
!
|
!
|
||||||
call mp_bcast (lgamma, ionode_id)
|
call mp_bcast (lgamma, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (epsil, ionode_id)
|
call mp_bcast (epsil, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (trans, ionode_id)
|
call mp_bcast (trans, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (zue, ionode_id)
|
call mp_bcast (zue, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (zeu, ionode_id)
|
call mp_bcast (zeu, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (reduce_io, ionode_id)
|
call mp_bcast (reduce_io, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (elph, ionode_id)
|
call mp_bcast (elph, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (ldisp, ionode_id)
|
call mp_bcast (ldisp, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (lraman, ionode_id)
|
call mp_bcast (lraman, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (elop, ionode_id)
|
call mp_bcast (elop, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (fpol, ionode_id)
|
call mp_bcast (fpol, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (recover, ionode_id)
|
call mp_bcast (recover, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (asr, ionode_id)
|
call mp_bcast (asr, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (lrpa, ionode_id)
|
call mp_bcast (lrpa, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (lnoloc, ionode_id)
|
call mp_bcast (lnoloc, ionode_id, intra_image_comm)
|
||||||
!
|
!
|
||||||
! integers
|
! integers
|
||||||
!
|
!
|
||||||
call mp_bcast (start_irr, ionode_id)
|
call mp_bcast (start_irr, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (last_irr, ionode_id)
|
call mp_bcast (last_irr, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (start_q, ionode_id)
|
call mp_bcast (start_q, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (last_q, ionode_id)
|
call mp_bcast (last_q, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (niter_ph, ionode_id)
|
call mp_bcast (niter_ph, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (nmix_ph, ionode_id)
|
call mp_bcast (nmix_ph, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (iverbosity, ionode_id)
|
call mp_bcast (iverbosity, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (modenum, ionode_id)
|
call mp_bcast (modenum, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (nat_todo, ionode_id)
|
call mp_bcast (nat_todo, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (nrapp, ionode_id)
|
call mp_bcast (nrapp, ionode_id, intra_image_comm)
|
||||||
CALL mp_bcast( nq1, ionode_id )
|
CALL mp_bcast( nq1, ionode_id, intra_image_comm )
|
||||||
CALL mp_bcast( nq2, ionode_id )
|
CALL mp_bcast( nq2, ionode_id, intra_image_comm )
|
||||||
CALL mp_bcast( nq3, ionode_id )
|
CALL mp_bcast( nq3, ionode_id, intra_image_comm )
|
||||||
CALL mp_bcast( iq1, ionode_id )
|
CALL mp_bcast( iq1, ionode_id, intra_image_comm )
|
||||||
CALL mp_bcast( iq2, ionode_id )
|
CALL mp_bcast( iq2, ionode_id, intra_image_comm )
|
||||||
CALL mp_bcast( iq3, ionode_id )
|
CALL mp_bcast( iq3, ionode_id, intra_image_comm )
|
||||||
!
|
!
|
||||||
! real*8
|
! real*8
|
||||||
!
|
!
|
||||||
call mp_bcast (tr2_ph, ionode_id)
|
call mp_bcast (tr2_ph, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (eth_rps, ionode_id)
|
call mp_bcast (eth_rps, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (eth_ns, ionode_id)
|
call mp_bcast (eth_ns, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (amass, ionode_id)
|
call mp_bcast (amass, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (alpha_mix, ionode_id)
|
call mp_bcast (alpha_mix, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (max_seconds, ionode_id)
|
call mp_bcast (max_seconds, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (dek, ionode_id)
|
call mp_bcast (dek, ionode_id, intra_image_comm)
|
||||||
!
|
!
|
||||||
! characters
|
! characters
|
||||||
!
|
!
|
||||||
call mp_bcast (title, ionode_id)
|
call mp_bcast (title, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (fildyn, ionode_id)
|
call mp_bcast (fildyn, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (fildvscf, ionode_id)
|
call mp_bcast (fildvscf, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (fildrho, ionode_id)
|
call mp_bcast (fildrho, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (tmp_dir, ionode_id)
|
call mp_bcast (tmp_dir, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (prefix, ionode_id)
|
call mp_bcast (prefix, ionode_id, intra_image_comm)
|
||||||
#endif
|
#endif
|
||||||
return
|
return
|
||||||
end subroutine bcast_ph_input
|
end subroutine bcast_ph_input
|
||||||
|
|
|
@ -18,7 +18,7 @@ SUBROUTINE davcio_drho( drho, lrec, iunit, nrec, isw )
|
||||||
USE kinds, ONLY : DP
|
USE kinds, ONLY : DP
|
||||||
USE fft_base, ONLY : dfftp, cgather_sym, cscatter_sym
|
USE fft_base, ONLY : dfftp, cgather_sym, cscatter_sym
|
||||||
USE io_global, ONLY : ionode, ionode_id
|
USE io_global, ONLY : ionode, ionode_id
|
||||||
USE mp_global, ONLY : inter_pool_comm, me_pool
|
USE mp_global, ONLY : inter_pool_comm, me_pool, intra_image_comm
|
||||||
USE mp, ONLY : mp_bcast, mp_barrier
|
USE mp, ONLY : mp_bcast, mp_barrier
|
||||||
USE gvect, ONLY : nrx1, nrx2, nrx3, nrxx
|
USE gvect, ONLY : nrx1, nrx2, nrx3, nrxx
|
||||||
USE noncollin_module, ONLY : nspin_mag
|
USE noncollin_module, ONLY : nspin_mag
|
||||||
|
@ -38,7 +38,7 @@ SUBROUTINE davcio_drho( drho, lrec, iunit, nrec, isw )
|
||||||
!
|
!
|
||||||
!
|
!
|
||||||
IF ( ionode ) INQUIRE (UNIT = iunit, OPENED = exst)
|
IF ( ionode ) INQUIRE (UNIT = iunit, OPENED = exst)
|
||||||
CALL mp_bcast(exst,ionode_id)
|
CALL mp_bcast(exst,ionode_id, intra_image_comm)
|
||||||
IF (.NOT.exst) RETURN
|
IF (.NOT.exst) RETURN
|
||||||
|
|
||||||
ALLOCATE( ddrho( nrx1 * nrx2 * nrx3 , nspin_mag) )
|
ALLOCATE( ddrho( nrx1 * nrx2 * nrx3 , nspin_mag) )
|
||||||
|
|
|
@ -27,7 +27,8 @@ subroutine el_opt
|
||||||
USE io_global, ONLY: ionode_id
|
USE io_global, ONLY: ionode_id
|
||||||
#ifdef __PARA
|
#ifdef __PARA
|
||||||
USE mp, ONLY: mp_bcast, mp_sum
|
USE mp, ONLY: mp_bcast, mp_sum
|
||||||
USE mp_global, ONLY: my_pool_id, inter_pool_comm, intra_pool_comm
|
USE mp_global, ONLY: my_pool_id, inter_pool_comm, intra_pool_comm, &
|
||||||
|
intra_image_comm
|
||||||
#endif
|
#endif
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
|
@ -125,7 +126,7 @@ subroutine el_opt
|
||||||
#ifdef __PARA
|
#ifdef __PARA
|
||||||
call mp_sum ( ps3, intra_pool_comm )
|
call mp_sum ( ps3, intra_pool_comm )
|
||||||
100 continue
|
100 continue
|
||||||
call mp_bcast(ps3, ionode_id)
|
call mp_bcast(ps3, ionode_id, intra_image_comm)
|
||||||
#endif
|
#endif
|
||||||
deallocate (d2muxc )
|
deallocate (d2muxc )
|
||||||
deallocate (aux3 )
|
deallocate (aux3 )
|
||||||
|
|
|
@ -311,7 +311,7 @@ SUBROUTINE elphsum ( )
|
||||||
USE phcom
|
USE phcom
|
||||||
USE el_phon
|
USE el_phon
|
||||||
USE io_global, ONLY : stdout, ionode, ionode_id
|
USE io_global, ONLY : stdout, ionode, ionode_id
|
||||||
USE mp_global, ONLY : npool
|
USE mp_global, ONLY : npool, intra_image_comm
|
||||||
USE mp, ONLY : mp_bcast
|
USE mp, ONLY : mp_bcast
|
||||||
USE control_flags, ONLY : modenum
|
USE control_flags, ONLY : modenum
|
||||||
USE control_ph, ONLY : lgamma
|
USE control_ph, ONLY : lgamma
|
||||||
|
@ -378,8 +378,8 @@ SUBROUTINE elphsum ( )
|
||||||
READ(iuna2Fsave,*) ibnd, nksfit
|
READ(iuna2Fsave,*) ibnd, nksfit
|
||||||
END IF
|
END IF
|
||||||
!
|
!
|
||||||
CALL mp_bcast (ibnd, ionode_id)
|
CALL mp_bcast (ibnd, ionode_id, intra_image_comm)
|
||||||
CALL mp_bcast (nksfit, ionode_id)
|
CALL mp_bcast (nksfit, ionode_id, intra_image_comm)
|
||||||
if ( ibnd /= nbnd ) call errore('elphsum','wrong file read',iuna2Fsave)
|
if ( ibnd /= nbnd ) call errore('elphsum','wrong file read',iuna2Fsave)
|
||||||
allocate (etfit(nbnd,nksfit), xkfit(3,nksfit), wkfit(nksfit))
|
allocate (etfit(nbnd,nksfit), xkfit(3,nksfit), wkfit(nksfit))
|
||||||
!
|
!
|
||||||
|
@ -393,12 +393,12 @@ SUBROUTINE elphsum ( )
|
||||||
!
|
!
|
||||||
! broadcast all variables read
|
! broadcast all variables read
|
||||||
!
|
!
|
||||||
CALL mp_bcast (etfit, ionode_id)
|
CALL mp_bcast (etfit, ionode_id, intra_image_comm)
|
||||||
CALL mp_bcast (xkfit, ionode_id)
|
CALL mp_bcast (xkfit, ionode_id, intra_image_comm)
|
||||||
CALL mp_bcast (wkfit, ionode_id)
|
CALL mp_bcast (wkfit, ionode_id, intra_image_comm)
|
||||||
CALL mp_bcast (nk1fit, ionode_id)
|
CALL mp_bcast (nk1fit, ionode_id, intra_image_comm)
|
||||||
CALL mp_bcast (nk2fit, ionode_id)
|
CALL mp_bcast (nk2fit, ionode_id, intra_image_comm)
|
||||||
CALL mp_bcast (nk3fit, ionode_id)
|
CALL mp_bcast (nk3fit, ionode_id, intra_image_comm)
|
||||||
!
|
!
|
||||||
nkfit=nk1fit*nk2fit*nk3fit
|
nkfit=nk1fit*nk2fit*nk3fit
|
||||||
!
|
!
|
||||||
|
|
|
@ -46,8 +46,9 @@ SUBROUTINE phq_readin()
|
||||||
USE noncollin_module, ONLY : i_cons, noncolin
|
USE noncollin_module, ONLY : i_cons, noncolin
|
||||||
USE ldaU, ONLY : lda_plus_u
|
USE ldaU, ONLY : lda_plus_u
|
||||||
USE control_flags, ONLY : iverbosity, modenum
|
USE control_flags, ONLY : iverbosity, modenum
|
||||||
USE io_global, ONLY : ionode
|
USE io_global, ONLY : ionode, stdout
|
||||||
USE mp_global, ONLY : nproc, nproc_pool, nproc_file, nproc_pool_file
|
USE mp_global, ONLY : nproc, nproc_pool, nproc_file, nproc_pool_file, &
|
||||||
|
intra_image_comm
|
||||||
USE control_flags, ONLY : twfcollect
|
USE control_flags, ONLY : twfcollect
|
||||||
USE paw_variables, ONLY : okpaw
|
USE paw_variables, ONLY : okpaw
|
||||||
USE ramanm, ONLY : eth_rps, eth_ns, lraman, elop, dek
|
USE ramanm, ONLY : eth_rps, eth_ns, lraman, elop, dek
|
||||||
|
@ -128,7 +129,7 @@ SUBROUTINE phq_readin()
|
||||||
!
|
!
|
||||||
ENDIF
|
ENDIF
|
||||||
!
|
!
|
||||||
CALL mp_bcast(ios, ionode_id)
|
CALL mp_bcast(ios, ionode_id, intra_image_comm)
|
||||||
CALL errore( 'phq_readin', 'reading title ', ABS( ios ) )
|
CALL errore( 'phq_readin', 'reading title ', ABS( ios ) )
|
||||||
!
|
!
|
||||||
! Rewind the input if the title is actually the beginning of inputph namelist
|
! Rewind the input if the title is actually the beginning of inputph namelist
|
||||||
|
@ -191,13 +192,13 @@ SUBROUTINE phq_readin()
|
||||||
!
|
!
|
||||||
IF (ionode) READ( 5, INPUTPH, IOSTAT = ios )
|
IF (ionode) READ( 5, INPUTPH, IOSTAT = ios )
|
||||||
|
|
||||||
CALL mp_bcast(ios, ionode_id)
|
CALL mp_bcast(ios, ionode_id, intra_image_comm)
|
||||||
!
|
!
|
||||||
CALL errore( 'phq_readin', 'reading inputph namelist', ABS( ios ) )
|
CALL errore( 'phq_readin', 'reading inputph namelist', ABS( ios ) )
|
||||||
!
|
!
|
||||||
IF (ionode) tmp_dir = trimcheck (outdir)
|
IF (ionode) tmp_dir = trimcheck (outdir)
|
||||||
CALL bcast_ph_input ( )
|
CALL bcast_ph_input ( )
|
||||||
CALL mp_bcast(nogg, ionode_id)
|
CALL mp_bcast(nogg, ionode_id, intra_image_comm)
|
||||||
!
|
!
|
||||||
! ... Check all namelist variables
|
! ... Check all namelist variables
|
||||||
!
|
!
|
||||||
|
@ -237,9 +238,9 @@ SUBROUTINE phq_readin()
|
||||||
IF (.NOT. ldisp) &
|
IF (.NOT. ldisp) &
|
||||||
READ (5, *, iostat = ios) (xq (ipol), ipol = 1, 3)
|
READ (5, *, iostat = ios) (xq (ipol), ipol = 1, 3)
|
||||||
END IF
|
END IF
|
||||||
CALL mp_bcast(ios, ionode_id)
|
CALL mp_bcast(ios, ionode_id, intra_image_comm)
|
||||||
CALL errore ('phq_readin', 'reading xq', ABS (ios) )
|
CALL errore ('phq_readin', 'reading xq', ABS (ios) )
|
||||||
CALL mp_bcast(xq, ionode_id)
|
CALL mp_bcast(xq, ionode_id, intra_image_comm)
|
||||||
IF (.NOT.ldisp) THEN
|
IF (.NOT.ldisp) THEN
|
||||||
lgamma = xq (1) .EQ.0.D0.AND.xq (2) .EQ.0.D0.AND.xq (3) .EQ.0.D0
|
lgamma = xq (1) .EQ.0.D0.AND.xq (2) .EQ.0.D0.AND.xq (3) .EQ.0.D0
|
||||||
IF ( (epsil.OR.zue) .AND..NOT.lgamma) CALL errore ('phq_readin', &
|
IF ( (epsil.OR.zue) .AND..NOT.lgamma) CALL errore ('phq_readin', &
|
||||||
|
@ -268,9 +269,9 @@ SUBROUTINE phq_readin()
|
||||||
READ (5, *, iostat = ios) nfs
|
READ (5, *, iostat = ios) nfs
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDIF
|
ENDIF
|
||||||
CALL mp_bcast(ios, ionode_id)
|
CALL mp_bcast(ios, ionode_id, intra_image_comm)
|
||||||
CALL errore ('phq_readin', 'reading number of FREQUENCIES', ABS(ios) )
|
CALL errore ('phq_readin', 'reading number of FREQUENCIES', ABS(ios) )
|
||||||
CALL mp_bcast(nfs, ionode_id)
|
CALL mp_bcast(nfs, ionode_id, intra_image_comm)
|
||||||
if (nfs > nfsmax) call errore('phq_readin','Too many frequencies',1)
|
if (nfs > nfsmax) call errore('phq_readin','Too many frequencies',1)
|
||||||
if (nfs < 1) call errore('phq_readin','Too few frequencies',1)
|
if (nfs < 1) call errore('phq_readin','Too few frequencies',1)
|
||||||
IF (ionode) THEN
|
IF (ionode) THEN
|
||||||
|
@ -282,9 +283,9 @@ SUBROUTINE phq_readin()
|
||||||
END DO
|
END DO
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
CALL mp_bcast(ios, ionode_id)
|
CALL mp_bcast(ios, ionode_id, intra_image_comm)
|
||||||
CALL errore ('phq_readin', 'reading FREQUENCIES card', ABS(ios) )
|
CALL errore ('phq_readin', 'reading FREQUENCIES card', ABS(ios) )
|
||||||
CALL mp_bcast(fiu, ionode_id)
|
CALL mp_bcast(fiu, ionode_id, intra_image_comm)
|
||||||
ELSE
|
ELSE
|
||||||
nfs=0
|
nfs=0
|
||||||
fiu=0.0_DP
|
fiu=0.0_DP
|
||||||
|
@ -424,18 +425,18 @@ SUBROUTINE phq_readin()
|
||||||
IF (ionode) &
|
IF (ionode) &
|
||||||
READ (5, *, iostat = ios) (atomo (na), na = 1, &
|
READ (5, *, iostat = ios) (atomo (na), na = 1, &
|
||||||
nat_todo)
|
nat_todo)
|
||||||
CALL mp_bcast(ios, ionode_id)
|
CALL mp_bcast(ios, ionode_id, intra_image_comm)
|
||||||
CALL errore ('phq_readin', 'reading atoms', ABS (ios) )
|
CALL errore ('phq_readin', 'reading atoms', ABS (ios) )
|
||||||
CALL mp_bcast(atomo, ionode_id)
|
CALL mp_bcast(atomo, ionode_id, intra_image_comm)
|
||||||
ENDIF
|
ENDIF
|
||||||
IF (nrapp.LT.0.OR.nrapp.GT.3 * nat) CALL errore ('phq_readin', &
|
IF (nrapp.LT.0.OR.nrapp.GT.3 * nat) CALL errore ('phq_readin', &
|
||||||
'nrapp is wrong', 1)
|
'nrapp is wrong', 1)
|
||||||
IF (nrapp.NE.0) THEN
|
IF (nrapp.NE.0) THEN
|
||||||
IF (ionode) &
|
IF (ionode) &
|
||||||
READ (5, *, iostat = ios) (list (na), na = 1, nrapp)
|
READ (5, *, iostat = ios) (list (na), na = 1, nrapp)
|
||||||
CALL mp_bcast(ios, ionode_id)
|
CALL mp_bcast(ios, ionode_id, intra_image_comm)
|
||||||
CALL errore ('phq_readin', 'reading list', ABS (ios) )
|
CALL errore ('phq_readin', 'reading list', ABS (ios) )
|
||||||
CALL mp_bcast(list, ionode_id)
|
CALL mp_bcast(list, ionode_id, intra_image_comm)
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
IF (epsil.AND.lgauss) &
|
IF (epsil.AND.lgauss) &
|
||||||
|
|
|
@ -36,6 +36,8 @@ subroutine set_irr (nat, at, bg, xq, s, invs, nsym, rtau, irt, &
|
||||||
USE random_numbers, ONLY : randy
|
USE random_numbers, ONLY : randy
|
||||||
#ifdef __PARA
|
#ifdef __PARA
|
||||||
use mp, only: mp_bcast
|
use mp, only: mp_bcast
|
||||||
|
use io_global, only : ionode_id
|
||||||
|
use mp_global, only : intra_image_comm
|
||||||
#endif
|
#endif
|
||||||
implicit none
|
implicit none
|
||||||
!
|
!
|
||||||
|
@ -215,15 +217,15 @@ subroutine set_irr (nat, at, bg, xq, s, invs, nsym, rtau, irt, &
|
||||||
! parallel stuff: first node broadcasts everything to all nodes
|
! parallel stuff: first node broadcasts everything to all nodes
|
||||||
!
|
!
|
||||||
400 continue
|
400 continue
|
||||||
call mp_bcast (gi, 0)
|
call mp_bcast (gi, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (gimq, 0)
|
call mp_bcast (gimq, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (u, 0)
|
call mp_bcast (u, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (nsymq, 0)
|
call mp_bcast (nsymq, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (npert, 0)
|
call mp_bcast (npert, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (nirr, 0)
|
call mp_bcast (nirr, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (irotmq, 0)
|
call mp_bcast (irotmq, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (irgq, 0)
|
call mp_bcast (irgq, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (minus_q, 0)
|
call mp_bcast (minus_q, ionode_id, intra_image_comm)
|
||||||
#endif
|
#endif
|
||||||
return
|
return
|
||||||
end subroutine set_irr
|
end subroutine set_irr
|
||||||
|
|
|
@ -20,6 +20,8 @@ subroutine set_irr_sym (nat, at, bg, xq, s, rtau, irt, &
|
||||||
USE constants, ONLY: tpi
|
USE constants, ONLY: tpi
|
||||||
|
|
||||||
USE mp, ONLY: mp_bcast
|
USE mp, ONLY: mp_bcast
|
||||||
|
USE mp_global, ONLY : intra_image_comm
|
||||||
|
USE io_global, ONLY : ionode_id
|
||||||
implicit none
|
implicit none
|
||||||
!
|
!
|
||||||
! first the dummy variables
|
! first the dummy variables
|
||||||
|
@ -156,8 +158,8 @@ subroutine set_irr_sym (nat, at, bg, xq, s, rtau, irt, &
|
||||||
! parallel stuff: first node broadcasts everything to all nodes
|
! parallel stuff: first node broadcasts everything to all nodes
|
||||||
!
|
!
|
||||||
400 continue
|
400 continue
|
||||||
call mp_bcast (t, 0)
|
call mp_bcast (t, ionode_id, intra_image_comm)
|
||||||
call mp_bcast (tmq, 0)
|
call mp_bcast (tmq, ionode_id, intra_image_comm)
|
||||||
#endif
|
#endif
|
||||||
return
|
return
|
||||||
end subroutine set_irr_sym
|
end subroutine set_irr_sym
|
||||||
|
|
Loading…
Reference in New Issue