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
> 


Responder a