| 223 |
|
mfactLocal = Cmfact |
| 224 |
|
|
| 225 |
|
call gather(groupStartLocal, groupStartRow, plan_group_row) |
| 226 |
< |
call gather(groupStartLocal, groupStartCol, plan_group_col) |
| 226 |
> |
call gather(groupStartLocal, groupStartCol, plan_group_col) |
| 227 |
|
groupStartRow(nGroupsInRow+1) = nAtomsInRow + 1 |
| 228 |
|
groupStartCol(nGroupsInCol+1) = nAtomsInCol + 1 |
| 229 |
|
call gather(groupListLocal, groupListRow, plan_atom_row) |
| 230 |
|
call gather(groupListLocal, groupListCol, plan_atom_col) |
| 231 |
+ |
|
| 232 |
+ |
! C passes us groupList as globalID numbers for the atoms |
| 233 |
+ |
! we need to remap these onto the row and column ids on this |
| 234 |
+ |
! processor. This is a linear search, but is only done once |
| 235 |
+ |
! (we hope) |
| 236 |
+ |
|
| 237 |
+ |
do i = 1, nAtomsInRow |
| 238 |
+ |
do j = 1, nAtomsInRow |
| 239 |
+ |
if (AtomRowToGlobal(j) .eq. groupListRow(i)) then |
| 240 |
+ |
groupListRow(i) = j |
| 241 |
+ |
endif |
| 242 |
+ |
enddo |
| 243 |
+ |
enddo |
| 244 |
+ |
do i = 1, nAtomsInCol |
| 245 |
+ |
do j = 1, nAtomsInCol |
| 246 |
+ |
if (AtomColToGlobal(j) .eq. groupListCol(i)) then |
| 247 |
+ |
groupListCol(i) = j |
| 248 |
+ |
endif |
| 249 |
+ |
enddo |
| 250 |
+ |
enddo |
| 251 |
|
call gather(mfactLocal, mfactRow, plan_atom_row) |
| 252 |
|
call gather(mfactLocal, mfactCol, plan_atom_col) |
| 253 |
|
|