<div dir="ltr"><div><div>Hello,</div></div><div><br></div><div>We want add some additional printing of the effective Hirshfeld volume of atoms in the Module/tsvdw.f90 during CP dynamics. The printing needs to be done at every iprint step in a file named prefix.hrs. We have this already coded locally in 5.0.2 version where we have the tsvdw.90 in the CPV/src only. We want to merge that part of the code in the trunk version. Problem is that we have used the nfi variable from CPV/src/mainvar.f90 to control the printing. Is it alright to use nfi variable from CPV and update the make.depend accordingly. Or can it be done in a different may be simpler way. We would like to add the following + lines.</div><div><br></div><div><br></div><div><div>--- a/Modules/tsvdw.f90</div><div>+++ b/Modules/tsvdw.f90</div><div>@@ -19,6 +19,7 @@ USE cell_base, ONLY: ainv !h^-1 matrix for converting bet</div><div> USE cell_base, ONLY: omega !cell volume (in au^3)</div><div> USE constants, ONLY: pi !pi in double-precision</div><div> USE control_flags, ONLY: lwfpbe0 !if .TRUE. then PBE0 calculation using Wannier orbitals is turned on ... BS </div><div>+USE control_flags, ONLY: iprint !print control in .hrs file</div><div>+USE cp_main_variables, ONLY: nfi !md step index</div><div>+USE io_global, ONLY: ionode !logical for I/O node</div><div> USE fft_base, ONLY: dffts !FFT derived data type</div><div> USE fft_base, ONLY: dfftp !FFT derived data type </div><div> USE funct, ONLY: get_iexch !retrieves type of exchange utilized in functional</div><div>@@ -1313,7 +1314,7 @@ PRIVATE :: GetVdWParam</div><div> !</div><div> ! Local variables</div><div> !</div><div>- INTEGER :: ia,iq,off1</div><div>+ INTEGER :: ia,iq,off1,iunit</div><div> REAL(DP) :: normr</div><div> !</div><div> CALL start_clock('tsvdw_veff')</div><div>@@ -1369,6 +1370,43 @@ PRIVATE :: GetVdWParam</div><div> !</div><div> CALL mp_sum(veff,intra_image_comm)</div><div> !</div><div>+ !BS: print effective Hirshfeld volume of each atom at every iprint steps in .hirsh file .. </div><div>+ !</div><div>+ IF ((MOD(nfi,iprint).EQ.0)) THEN</div><div>+ ! </div><div>+ IF (ionode) THEN</div><div>+ ! </div><div>+ iunit=printout_base_unit("hrs")</div><div>+ CALL printout_base_open("hrs")</div><div>+ ! </div><div>+ IF (.NOT.tcpbo) THEN</div><div>+ !</div><div>+ WRITE(iunit,'(I8,F16.8)')nfi,tps</div><div>+ !</div><div>+ DO ia=1,nat</div><div>+ WRITE(iunit,'(3X,F20.14)')veff(ia)</div><div>+ END DO </div><div>+ !</div><div>+ ELSE </div><div>+ !</div><div>+ IF (conv_elec) THEN</div><div>+ ! </div><div>+ WRITE(iunit,'(I8,f16.8)')nfi,tps</div><div>+ !</div><div>+ DO ia=1,nat</div><div>+ WRITE(iunit,'(3X,F20.14)')veff(ia)</div><div>+ END DO </div><div>+ ! </div><div>+ END IF </div><div>+ !</div><div>+ END IF </div><div>+ ! </div><div>+ CALL printout_base_close("hrs")</div><div>+ ! </div><div>+ END IF </div><div>+ ! </div><div>+ END IF </div><div>+ !</div><div> CALL stop_clock('tsvdw_veff')</div><div> !</div><div> RETURN</div></div><div><br></div><div>Thanks & best wishes,</div><div>Biswajit</div><div><br></div><div><br></div>
</div>