| 7 |
|
!! |
| 8 |
|
!! @author Charles F. Vardeman II |
| 9 |
|
!! @author Matthew Meineke |
| 10 |
< |
!! @version $Id: mpiSimulation_module.F90,v 1.9 2003-11-07 21:46:56 chuckv Exp $, $Date: 2003-11-07 21:46:56 $, $Name: not supported by cvs2svn $, $Revision: 1.9 $ |
| 10 |
> |
!! @version $Id: mpiSimulation_module.F90,v 1.10 2003-12-17 20:13:33 chuckv Exp $, $Date: 2003-12-17 20:13:33 $, $Name: not supported by cvs2svn $, $Revision: 1.10 $ |
| 11 |
|
|
| 12 |
|
module mpiSimulation |
| 13 |
|
use definitions |
| 73 |
|
|
| 74 |
|
|
| 75 |
|
!! Tags used during force loop for parallel simulation |
| 76 |
< |
integer, allocatable, dimension(:) :: tagLocal |
| 76 |
> |
integer, public, allocatable, dimension(:) :: tagLocal |
| 77 |
|
integer, public, allocatable, dimension(:) :: tagRow |
| 78 |
|
integer, public, allocatable, dimension(:) :: tagColumn |
| 79 |
|
|
| 626 |
|
! allocate row arrays |
| 627 |
|
nrow = getNrow(plan_row) |
| 628 |
|
ncol = getNcol(plan_col) |
| 629 |
+ |
|
| 630 |
+ |
if(.not. allocated(tagLocal)) then |
| 631 |
+ |
allocate(tagLocal(size(tags)),STAT=alloc_stat) |
| 632 |
+ |
if (alloc_stat /= 0 ) then |
| 633 |
+ |
status = -1 |
| 634 |
+ |
return |
| 635 |
+ |
endif |
| 636 |
+ |
else |
| 637 |
+ |
deallocate(tagLocal) |
| 638 |
+ |
allocate(tagLocal(size(tags)),STAT=alloc_stat) |
| 639 |
+ |
if (alloc_stat /= 0 ) then |
| 640 |
+ |
status = -1 |
| 641 |
+ |
return |
| 642 |
+ |
endif |
| 643 |
|
|
| 644 |
+ |
endif |
| 645 |
+ |
|
| 646 |
+ |
tagLocal = tags |
| 647 |
+ |
|
| 648 |
+ |
|
| 649 |
|
if (.not. allocated(tagRow)) then |
| 650 |
|
allocate(tagRow(nrow),STAT=alloc_stat) |
| 651 |
|
if (alloc_stat /= 0 ) then |
| 680 |
|
call gather(tags,tagRow,plan_row) |
| 681 |
|
call gather(tags,tagColumn,plan_col) |
| 682 |
|
|
| 683 |
+ |
|
| 684 |
|
end subroutine setTags |
| 685 |
|
|
| 686 |
|
! pure function getNcol(thisplan) result(ncol) |