Hi Abishek, For this purpose I've done very ugly hack of copying the dipole moment printing code into the force printing subroutine. I am fully aware that it could be done nicely, and would be both - easy and useful, but my experience in Fortran is non existent ;) so I need to wait for others to do so - if anybody could make a proper patch I'd be the first one to apply it before compilation :)
Anyway - my approach was to find the end of siesta_write_forces subroutine (around 675-th line of write_subs.F file) and put there the part concerning electric dipole from siesta_analysis.F file. I also had to add the "use m_dipol" statement. that's all - crude, but worked for me. Cheers, Bartek On Fri, 2012-08-03 at 17:52 +0200, Abhishek Asthana wrote: > Hello, > > I am using the SIESTA code to observe how dipole moments of various > polar organic compounds change during the course of an AIMD > simulation. For this purpose, I need to display the dipole moment at > each step. I program in fortran-77 and C, but have little experience > with fortran-95 and I’m having trouble modifying the code. > > > > I have gotten this far: After the last MD step, the siesta.F code > calls on siesta_analysis.F, which has a few dipole related piece of > code which prints the dipole, and the siesta_analysis.F calls on > another code dhscf.F, which probably accepts and updates “dipol” > variable. This then probably calls the dipole.F code to calculate > dipole. > > > > I’m having trouble putting this all together and inferring how to > include this dipole moment calculation inside the main loop > in siesta.F (which calls on siesta_forces and siesta_move). Can > someone help me with this? > > > > Thanks! > > Abhishek >
