<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>     !<br>    CALL write_gk(iunout,ik,filename)<br>    CALL write_this_wfc(iunout,ik)<br>     !<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't crash and I haven'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'd bring this to your attention in case you weren't aware of it.<br><br>Best,<br>Brad Malone<br>UC Berkeley<br></div>