| 1 | 
– | 
#ifdef IS_MPI | 
| 1 | 
  | 
 | 
| 2 | 
+ | 
 | 
| 3 | 
  | 
!! MPI support for long range forces using force decomposition  | 
| 4 | 
  | 
!! on a square grid of processors. | 
| 5 | 
  | 
!! Corresponds to mpiSimunation.cpp for C++ | 
| 7 | 
  | 
!! | 
| 8 | 
  | 
!! @author Charles F. Vardeman II | 
| 9 | 
  | 
!! @author Matthew Meineke | 
| 10 | 
< | 
!! @version $Id: mpiSimulation_module.F90,v 1.1.1.1 2003-03-21 17:42:12 mmeineke Exp $, $Date: 2003-03-21 17:42:12 $, $Name: not supported by cvs2svn $, $Revision: 1.1.1.1 $ | 
| 10 | 
> | 
!! @version $Id: mpiSimulation_module.F90,v 1.5 2003-07-17 19:25:51 chuckv Exp $, $Date: 2003-07-17 19:25:51 $, $Name: not supported by cvs2svn $, $Revision: 1.5 $ | 
| 11 | 
  | 
 | 
| 12 | 
  | 
module mpiSimulation   | 
| 13 | 
  | 
  use definitions | 
| 14 | 
+ | 
#ifdef IS_MPI | 
| 15 | 
  | 
  use mpi | 
| 16 | 
  | 
  implicit none | 
| 17 | 
  | 
  PRIVATE | 
| 137 | 
  | 
    integer :: localStatus | 
| 138 | 
  | 
!! Global reference tag for local particles | 
| 139 | 
  | 
    integer, dimension(ntags),intent(inout) :: tags  | 
| 140 | 
+ | 
 | 
| 141 | 
+ | 
    write(*,*) 'mpiSim_mod thinks node', thisComponentPlan%myNode, ' has tags(1) = ', tags(1) | 
| 142 | 
+ | 
 | 
| 143 | 
  | 
 | 
| 144 | 
  | 
 | 
| 145 | 
  | 
    status = 0 | 
| 258 | 
  | 
     | 
| 259 | 
  | 
    nComponentsLocal = thisComponentPlan%myNlocal | 
| 260 | 
  | 
 | 
| 261 | 
+ | 
    write(*,*) "UpdateGridComponents: myNlocal ", nComponentsLocal | 
| 262 | 
  | 
    call mpi_allreduce(nComponentsLocal,nComponentsRow,1,mpi_integer,& | 
| 263 | 
  | 
         mpi_sum,thisComponentPlan%rowComm,mpiErrors) | 
| 264 | 
  | 
    if (mpiErrors /= 0) then | 
| 275 | 
  | 
 | 
| 276 | 
  | 
    thisComponentPlan%nComponentsRow = nComponentsRow | 
| 277 | 
  | 
    thisComponentPlan%nComponentsColumn = nComponentsColumn | 
| 278 | 
< | 
 | 
| 278 | 
> | 
    write(*,*) "UpdateGridComponents: myNRow ",& | 
| 279 | 
> | 
         thisComponentPlan%nComponentsRow | 
| 280 | 
> | 
    write(*,*) "UpdateGridComponents: myNColumn ",& | 
| 281 | 
> | 
         thisComponentPlan%nComponentsColumn | 
| 282 | 
  | 
 | 
| 283 | 
  | 
  end subroutine updateGridComponents | 
| 284 | 
  | 
 | 
| 633 | 
  | 
    ncol = thisplan%gsComponentPlan%nComponentsColumn | 
| 634 | 
  | 
  end function getNcol | 
| 635 | 
  | 
 | 
| 636 | 
< | 
  pure function getNrow(thisplan) result(ncol) | 
| 636 | 
> | 
  pure function getNrow(thisplan) result(nrow) | 
| 637 | 
  | 
    type (gs_plan), intent(in) :: thisplan | 
| 638 | 
< | 
    integer :: ncol | 
| 639 | 
< | 
    ncol = thisplan%gsComponentPlan%nComponentsrow | 
| 638 | 
> | 
    integer :: nrow | 
| 639 | 
> | 
    nrow = thisplan%gsComponentPlan%nComponentsRow | 
| 640 | 
  | 
  end function getNrow | 
| 641 | 
  | 
 | 
| 642 | 
  | 
  function isMPISimSet() result(isthisSimSet) | 
| 670 | 
  | 
       write(default_error,*) "nBondGlobal: ", mpiSim%nBondsGlobal | 
| 671 | 
  | 
       write(default_error,*) "nTorsionsGlobal: ", mpiSim%nTorsionsGlobal | 
| 672 | 
  | 
       write(default_error,*) "nSRIGlobal: ", mpiSim%nSRIGlobal | 
| 665 | 
– | 
       write(default_error,*) "myMolStart: ", mpiSim%myMolStart | 
| 666 | 
– | 
       write(default_error,*) "myMolEnd: ", mpiSim%myMolEnd | 
| 667 | 
– | 
       write(default_error,*) "myMol: ", mpiSim%myMol | 
| 673 | 
  | 
       write(default_error,*) "myNlocal: ", mpiSim%myNlocal | 
| 674 | 
  | 
       write(default_error,*) "myNode: ", mpiSim%myNode | 
| 675 | 
  | 
       write(default_error,*) "numberProcessors: ", mpiSim%numberProcessors | 
| 689 | 
  | 
    myNode = mpiSim%myNode | 
| 690 | 
  | 
  end function getMyNode | 
| 691 | 
  | 
 | 
| 692 | 
< | 
 | 
| 692 | 
> | 
#endif // is_mpi | 
| 693 | 
  | 
end module mpiSimulation | 
| 694 | 
  | 
 | 
| 695 | 
< | 
#endif // is_mpi | 
| 695 | 
> | 
 |