| 250 |
|
subroutine allocateEAM(status) |
| 251 |
|
integer, intent(out) :: status |
| 252 |
|
|
| 253 |
– |
integer :: nlocal |
| 253 |
|
#ifdef IS_MPI |
| 254 |
|
integer :: nrow |
| 255 |
|
integer :: ncol |
| 257 |
|
integer :: alloc_stat |
| 258 |
|
|
| 259 |
|
|
| 261 |
– |
nlocal = getNlocal() |
| 260 |
|
status = 0 |
| 261 |
|
#ifdef IS_MPI |
| 262 |
|
nrow = getNrow(plan_row) |
| 651 |
|
|
| 652 |
|
|
| 653 |
|
!! Does EAM pairwise Force calculation. |
| 654 |
< |
subroutine do_eam_pair(atom1,atom2,d,rij,r2,pot,f,do_pot,do_stress) |
| 654 |
> |
subroutine do_eam_pair(atom1, atom2, d, rij, r2, sw, vpair, pot, f, & |
| 655 |
> |
do_pot, do_stress) |
| 656 |
|
!Arguments |
| 657 |
|
integer, intent(in) :: atom1, atom2 |
| 658 |
|
real( kind = dp ), intent(in) :: rij, r2 |
| 659 |
< |
real( kind = dp ) :: pot |
| 660 |
< |
real( kind = dp ), dimension(3,getNlocal()) :: f |
| 659 |
> |
real( kind = dp ) :: pot, sw, vpair |
| 660 |
> |
real( kind = dp ), dimension(3,nLocal) :: f |
| 661 |
|
real( kind = dp ), intent(in), dimension(3) :: d |
| 662 |
|
logical, intent(in) :: do_pot, do_stress |
| 663 |
|
|
| 789 |
|
pot_Row(atom1) = pot_Row(atom1) + phab*0.5 |
| 790 |
|
pot_Col(atom2) = pot_Col(atom2) + phab*0.5 |
| 791 |
|
end if |
| 792 |
+ |
vpair = vpair + phab |
| 793 |
|
|
| 794 |
|
f_Row(1,atom1) = f_Row(1,atom1) + fx |
| 795 |
|
f_Row(2,atom1) = f_Row(2,atom1) + fy |
| 803 |
|
if(do_pot) then |
| 804 |
|
pot = pot + phab |
| 805 |
|
end if |
| 806 |
+ |
vpair = vpair + phab |
| 807 |
|
|
| 808 |
|
f(1,atom1) = f(1,atom1) + fx |
| 809 |
|
f(2,atom1) = f(2,atom1) + fy |