ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/InitializeFromFile.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/InitializeFromFile.cpp (file contents):
Revision 418 by gezelter, Thu Mar 27 01:49:45 2003 UTC vs.
Revision 419 by gezelter, Thu Mar 27 15:07:29 2003 UTC

# Line 212 | Line 212 | void InitializeFromFile :: read_xyz( SimInfo* the_entr
212        MPI::COMM_WORLD.Send(read_buffer, BUFFERSIZE, MPI_CHAR, j,
213                             TAKE_THIS_TAG);
214      }
215 <
215 >    
216    } else {
217 <
217 >    
218      done = 0;
219      while (!done) {
220        MPI::COMM_WORLD.Recv(read_buffer, BUFFERSIZE, MPI_CHAR, 0,
# Line 225 | Line 225 | void InitializeFromFile :: read_xyz( SimInfo* the_entr
225        } else {
226          MPI::COMM_WORLD.Recv(&which_atom, 1, MPI_INT, 0,
227                               TAKE_THIS_TAG, istatus);
228 +        
229          parseErr = parseDumpLine( read_buffer, which_atom );
230          if( parseErr != NULL ){
231            strcpy( painCave.errMsg, parseErr );
# Line 238 | Line 239 | char* InitializeFromFile::parseDumpLine(char* readLine
239   #endif
240   }
241  
242 < char* InitializeFromFile::parseDumpLine(char* readLine, int atomIndex){
242 > char* InitializeFromFile::parseDumpLine(char* readLine, int globalIndex){
243  
244    char *foo; // the pointer to the current string token
245    
# Line 251 | Line 252 | char* InitializeFromFile::parseDumpLine(char* readLine
252    Atom **atoms = entry_plug->atoms;
253    DirectionalAtom* dAtom;
254    
255 <  int n_atoms;
255 >  int j, n_atoms, atomIndex;
256  
257   #ifdef IS_MPI
258    n_atoms = mpiSim->getTotAtoms();
259 +  atomIndex=-1;        
260 +  for (j=0; j < mpiSim->getMyNlocal(); j++) {
261 +    if (atoms[j]->getGlobalIndex() == globalIndex) atomIndex = j;
262 +  }
263 +  if (atomIndex == -1) {
264 +    sprintf( painCave.errMsg,
265 +             "Initialize from file error. Atom at index %d "
266 +             "in file %s does not exist on processor %d .\n",
267 +             globalIndex, c_in_name, mpiSim->getMyNode() );
268 +    return strdup( painCave.errMsg );
269 +  }  
270   #else
271    n_atoms = entry_plug->n_atoms;
272 +  atomIndex = globalIndex;
273   #endif // is_mpi
274  
262
275    // set the string tokenizer
276    
277    foo = strtok(readLine, " ,;\t");

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines