<div dir="ltr">On Tue, Oct 18, 2016 at 11:52 AM, Lorenzo Paulatto <span dir="ltr"><<a href="mailto:lorenzo.paulatto@impmc.upmc.fr" target="_blank">lorenzo.paulatto@impmc.upmc.fr</a>></span> wrote:<br><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yes, I see, I had to redo all the scatter/collect mechanism anyway because<br>
<beta|psi> products are stored in a derived type, which has not pre-made<br>
subroutines.<br></blockquote><div><br></div><div>likely you will need a complex version. maybe we should consider an interface.<br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I also noticed that we do:<br>
    IF (npool>1) CALL mp_sum(exxbuff, inter_pool_comm)<br>
should this be followed by a<br>
 CALL mp_bcast(exxbuff, root_pool, intra_pool_comm)<br>
?<br></blockquote><div><br></div><div class="h5">I don;'t think so: exxbuff has three indices and is distributed over the first (PW, inside a band group) and the second (bands, across band groups) indices. The problem is the third index, k+q. Each pool has a subset of k-points, fills a subset of k+q points, needs a different subset of k+q points (except if nq1=nq2=nq3=1, that is, q=0 only). The "mp_sum" above is just filling the third index for all pools. It is dumb but simple; better solutions welcome<br><br></div></div>Paolo<br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Paolo Giannozzi, <span>Dip. Scienze Matematiche Informatiche e Fisiche</span>,<br>Univ. Udine, via delle Scienze 208, 33100 Udine, Italy<br>Phone +39-0432-558216, fax +39-0432-558222<br><br></div></div></div></div></div>
</div></div>