<div dir="ltr">Hi, I noticed some unexpected behavior when running pw.x on more than 1 pool. Specifically this happens in PW/pw_restart.f90 if a calculation is done with wf_collect set to true and if the number of pools is not equal to 1. I believe the offending lines are <br>
<br>IF ( lwfc ) THEN<br>&nbsp;&nbsp;&nbsp;&nbsp; !<br>&nbsp;&nbsp;&nbsp; CALL write_gk(iunout,ik,filename)<br>&nbsp;&nbsp;&nbsp; CALL write_this_wfc(iunout,ik)<br>&nbsp;&nbsp;&nbsp;&nbsp; !<br>END IF<br><br><br>The error comes about because in the subroutine write_this_wfc the subroutine write_wfc is called, which has as one of its arguments igk_l2g_kdip(:, ik-iks+1). iks is the first index of the first k point in a particular pool. However, ik in this routine runs over ALL the kpoints, thus indexing negative values (e.g., ik goes from 1-28 while iks goes from 17-18). If debugging flags are not turned on the program doesn&#39;t crash and I haven&#39;t tested to see what difference in might make in the output. But turning debugging flags on catches this error and exits the program.<br>
<br>Anyhow, I thought I&#39;d bring this to your attention in case you weren&#39;t aware of it.<br><br>Best,<br>Brad Malone<br>UC Berkeley<br></div>