4 |
|
|
5 |
|
!! @author Charles F. Vardeman II |
6 |
|
!! @author Matthew Meineke |
7 |
< |
!! @version $Id: do_Forces.F90,v 1.64 2004-05-27 15:21:20 gezelter Exp $, $Date: 2004-05-27 15:21:20 $, $Name: not supported by cvs2svn $, $Revision: 1.64 $ |
7 |
> |
!! @version $Id: do_Forces.F90,v 1.67 2004-06-01 18:42:58 gezelter Exp $, $Date: 2004-06-01 18:42:58 $, $Name: not supported by cvs2svn $, $Revision: 1.67 $ |
8 |
|
|
9 |
|
module do_Forces |
10 |
|
use force_globals |
428 |
|
nAtomsInCol = getNatomsInCol(plan_atom_col) |
429 |
|
nGroupsInRow = getNgroupsInRow(plan_group_row) |
430 |
|
nGroupsInCol = getNgroupsInCol(plan_group_col) |
431 |
+ |
write(*,*) nAtomsInRow, nAtomsInCol, nGroupsInRow, nGroupsInCol |
432 |
+ |
write(*,*) pot_local |
433 |
|
#else |
434 |
|
natoms = nlocal |
435 |
|
#endif |
483 |
|
! See if we need to update neighbor lists |
484 |
|
! (but only on the first time through): |
485 |
|
if (loop .eq. loopStart) then |
486 |
< |
call checkNeighborList(nGroups, q_group, listSkin, update_nlist) |
486 |
> |
#ifdef IS_MPI |
487 |
> |
call checkNeighborList(nGroupsInRow, q_group_row, listSkin, & |
488 |
> |
update_nlist) |
489 |
> |
#else |
490 |
> |
call checkNeighborList(nGroups, q_group, listSkin, & |
491 |
> |
update_nlist) |
492 |
> |
#endif |
493 |
|
endif |
494 |
|
|
495 |
|
if (update_nlist) then |
496 |
|
!! save current configuration and construct neighbor list |
497 |
|
#ifdef IS_MPI |
498 |
< |
call saveNeighborList(nGroupsInRow, q_group) |
498 |
> |
call saveNeighborList(nGroupsInRow, q_group_row) |
499 |
|
#else |
500 |
|
call saveNeighborList(nGroups, q_group) |
501 |
|
#endif |
510 |
|
iend = nGroups - 1 |
511 |
|
#endif |
512 |
|
outer: do i = istart, iend |
513 |
< |
|
513 |
> |
|
514 |
|
if (update_nlist) point(i) = nlist + 1 |
515 |
|
|
516 |
|
n_in_i = groupStartRow(i+1) - groupStartRow(i) |
585 |
|
atom2 = groupListCol(jb) |
586 |
|
|
587 |
|
if (skipThisPair(atom1, atom2)) cycle inner |
588 |
< |
|
588 |
> |
|
589 |
|
if ((n_in_i .eq. 1).and.(n_in_j .eq. 1)) then |
590 |
|
d_atm(1:3) = d_grp(1:3) |
591 |
|
ratmsq = rgrpsq |
598 |
|
q(:,atom2), d_atm, ratmsq) |
599 |
|
#endif |
600 |
|
endif |
601 |
+ |
#ifdef IS_MPI |
602 |
+ |
write(*,'(a20,2i8,es12.3,2i8)') 'atom1, atom2, pot = ', atom1, atom2, ratmsq, AtomRowToGlobal(atom1), AtomColToGlobal(atom2) |
603 |
+ |
#endif |
604 |
+ |
|
605 |
|
if (loop .eq. PREPAIR_LOOP) then |
606 |
|
#ifdef IS_MPI |
607 |
|
call do_prepair(atom1, atom2, ratmsq, d_atm, sw, & |
617 |
|
call do_pair(atom1, atom2, ratmsq, d_atm, sw, & |
618 |
|
do_pot, & |
619 |
|
u_l, A, f, t, pot_local, vpair, fpair) |
620 |
+ |
write(*,'(a20,2i11,2es12.3)') 'atom1, atom2, pot = ', atom1, atom2, pot_local, vpair |
621 |
|
#else |
622 |
|
call do_pair(atom1, atom2, ratmsq, d_atm, sw, & |
623 |
|
do_pot, & |
624 |
|
u_l, A, f, t, pot, vpair, fpair) |
625 |
|
#endif |
626 |
+ |
|
627 |
|
vij = vij + vpair |
628 |
|
fij(1:3) = fij(1:3) + fpair(1:3) |
629 |
|
endif |
1145 |
|
endif |
1146 |
|
enddo |
1147 |
|
|
1148 |
< |
do i = 1, nSkipsForAtom(unique_id_1) |
1149 |
< |
if (skipsForAtom(unique_id_1, i) .eq. unique_id_2) then |
1148 |
> |
do i = 1, nSkipsForAtom(atom1) |
1149 |
> |
if (skipsForAtom(atom1, i) .eq. unique_id_2) then |
1150 |
|
skip_it = .true. |
1151 |
|
return |
1152 |
|
endif |