1 |
|
!! Calculates Long Range forces. |
2 |
|
!! @author Charles F. Vardeman II |
3 |
|
!! @author Matthew Meineke |
4 |
< |
!! @version $Id: do_Forces.F90,v 1.5 2003-03-07 18:26:30 chuckv Exp $, $Date: 2003-03-07 18:26:30 $, $Name: not supported by cvs2svn $, $Revision: 1.5 $ |
4 |
> |
!! @version $Id: do_Forces.F90,v 1.7 2003-03-10 18:56:37 gezelter Exp $, $Date: 2003-03-10 18:56:37 $, $Name: not supported by cvs2svn $, $Revision: 1.7 $ |
5 |
|
|
6 |
|
|
7 |
|
|
462 |
|
real( kind = dp ) :: drdz = 0.0_dp |
463 |
|
|
464 |
|
|
465 |
+ |
#ifdef IS_MPI |
466 |
+ |
|
467 |
|
if (Atype_i%is_LJ .and. Atype_j%is_LJ) then |
468 |
|
call getLJForce(r,pot,dudr,ljAtype_i,ljAtype_j,fx,fy,fz) |
469 |
|
endif |
470 |
|
|
471 |
|
if (Atype_i%is_dp .and. Atype_j%is_dp) then |
472 |
|
|
471 |
– |
#ifdef IS_MPI |
473 |
|
call dipole_dipole(i, j, atype_i, atype_j, rx_ij, ry_ij, rz_ij, r_ij, & |
474 |
|
ulRow(:,i), ulCol(:,j), rt, rrf, pot) |
474 |
– |
#else |
475 |
– |
call dipole_dipole(i, j, atype_i, atype_j, rx_ij, ry_ij, rz_ij, r_ij, & |
476 |
– |
ul(:,i), ul(:,j), rt, rrf, pot) |
477 |
– |
#endif |
475 |
|
|
476 |
|
if (do_reaction_field) then |
480 |
– |
#ifdef IS_MPI |
477 |
|
call accumulate_rf(i, j, r_ij, rflRow(:,i), rflCol(:j), & |
478 |
|
ulRow(:i), ulCol(:,j), rt, rrf) |
479 |
+ |
endif |
480 |
+ |
|
481 |
+ |
endif |
482 |
+ |
|
483 |
+ |
if (Atype_i%is_sticky .and. Atype_j%is_sticky) then |
484 |
+ |
call getstickyforce(r, pot, dudr, Atype_i, Atype_j) |
485 |
+ |
endif |
486 |
+ |
|
487 |
|
#else |
488 |
+ |
|
489 |
+ |
if (Atype_i%is_LJ .and. Atype_j%is_LJ) then |
490 |
+ |
call getLJForce(r,pot,dudr,ljAtype_i,ljAtype_j,fx,fy,fz) |
491 |
+ |
endif |
492 |
+ |
|
493 |
+ |
if (Atype_i%is_dp .and. Atype_j%is_dp) then |
494 |
+ |
call dipole_dipole(i, j, atype_i, atype_j, rx_ij, ry_ij, rz_ij, r_ij, & |
495 |
+ |
ul(:,i), ul(:,j), rt, rrf, pot) |
496 |
+ |
|
497 |
+ |
if (do_reaction_field) then |
498 |
|
call accumulate_rf(i, j, r_ij, rfl(:,i), rfl(:j), & |
499 |
|
ul(:,i), ul(:,j), rt, rrf) |
486 |
– |
#endif |
500 |
|
endif |
501 |
|
|
489 |
– |
|
502 |
|
endif |
503 |
|
|
504 |
|
if (Atype_i%is_sticky .and. Atype_j%is_sticky) then |
505 |
< |
call getstickyforce(r,pot,dudr,ljAtype_i,ljAtype_j) |
505 |
> |
call getstickyforce(r,pot,dudr, Atype_i, Atype_j) |
506 |
|
endif |
507 |
|
|
508 |
+ |
#endif |
509 |
+ |
|
510 |
|
|
511 |
|
#ifdef IS_MPI |
512 |
|
eRow(i) = eRow(i) + pot*0.5 |
522 |
|
fx = dudr * drdx |
523 |
|
fy = dudr * drdy |
524 |
|
fz = dudr * drdz |
511 |
– |
|
512 |
– |
|
513 |
– |
|
514 |
– |
|
515 |
– |
|
516 |
– |
|
525 |
|
|
526 |
|
#ifdef IS_MPI |
527 |
|
fCol(1,j) = fCol(1,j) - fx |