ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/mdtools/interface_implementation/MakeStamps.cpp
(Generate patch)

Comparing trunk/mdtools/interface_implementation/MakeStamps.cpp (file contents):
Revision 11 by mmeineke, Tue Jul 9 18:40:59 2002 UTC vs.
Revision 176 by mmeineke, Thu Nov 14 22:00:44 2002 UTC

# Line 3 | Line 3
3  
4   #include "MakeStamps.hpp"
5   #include "MoleculeStamp.hpp"
6 + #include "simError.h"
7 + #include "mpiBASS.h"
8  
9   LinkedMolStamp::~LinkedMolStamp(){
10    if( mol_stamp != NULL ) delete mol_stamp;
# Line 58 | Line 60 | int MakeStamps::hash( char* text ){
60  
61      // if the key is less than zero, we've had an overflow error
62  
63 <    fprintf( stderr,
64 <             "There has been an overflow error in the hash key.");
65 <    exit(0);
63 >    sprintf( painCave.errMsg,
64 >             "There has been an overflow error in the MakeStamps hash key.");
65 >    painCave.isFatal = 1;
66 >    simError();
67 > #ifdef IS_MPI
68 >    if( painCave.isEventLoop ){
69 >      if( worldRank == 0 ) mpiInterfaceExit();
70 >    }
71 > #endif //is_mpi
72    }
73    
74    return key;
# Line 103 | Line 111 | int MakeStamps::moleculeAssign( event* the_event ){
111    switch( the_event->evt.asmt.asmt_type ){
112      
113    case STRING:
114 <    current_mol->assignString( the_event->evt.asmt.lhs,
115 <                               the_event->evt.asmt.rhs.sval );
108 <    return 1;
114 >    the_event->err_msg = current_mol->assignString( the_event->evt.asmt.lhs,
115 >                                      the_event->evt.asmt.rhs.sval );
116      break;
117  
118    case DOUBLE:
119 <    current_mol->assignDouble( the_event->evt.asmt.lhs,
120 <                               the_event->evt.asmt.rhs.dval );
114 <    return 1;
119 >    the_event->err_msg = current_mol->assignDouble( the_event->evt.asmt.lhs,
120 >                                      the_event->evt.asmt.rhs.dval );
121      break;
122 <
122 >    
123    case INT:
124 <    current_mol->assignInt( the_event->evt.asmt.lhs,
125 <                            the_event->evt.asmt.rhs.ival );
120 <    return 1;
124 >    the_event->err_msg = current_mol->assignInt( the_event->evt.asmt.lhs,
125 >                                   the_event->evt.asmt.rhs.ival );
126      break;
127  
128    default:
# Line 126 | Line 131 | int MakeStamps::moleculeAssign( event* the_event ){
131      return 0;
132      break;
133    }
134 <  return 0;
134 >  if( the_event->err_msg != NULL ) return 0;
135 >  return 1;
136   }
137  
138   int MakeStamps::moleculeEnd( event* the_event ){
# Line 146 | Line 152 | int MakeStamps::newAtom( event* the_event ){
152    the_event->err_msg = current_mol->addAtom( current_atom,
153                                               the_event->evt.blk_index );
154    if( the_event->err_msg != NULL ) return 0;
149
155    return 1;
156   }
157  
# Line 172 | Line 177 | int MakeStamps::atomAssign( event* the_event ){
177    switch( the_event->evt.asmt.asmt_type ){
178      
179    case STRING:
180 <    current_atom->assignString( the_event->evt.asmt.lhs,
181 <                               the_event->evt.asmt.rhs.sval );
180 >    the_event->err_msg =
181 >      current_atom->assignString( the_event->evt.asmt.lhs,
182 >                                  the_event->evt.asmt.rhs.sval );
183 >    if( the_event->err_msg != NULL ) return 0;
184      return 1;
185      break;
186  
187    case DOUBLE:
188 <    current_atom->assignDouble( the_event->evt.asmt.lhs,
189 <                               the_event->evt.asmt.rhs.dval );
190 <    return 1;
188 >    the_event->err_msg =
189 >      current_atom->assignDouble( the_event->evt.asmt.lhs,
190 >                                  the_event->evt.asmt.rhs.dval );
191 >    if( the_event->err_msg != NULL ) return 0;
192 >    return 1;    
193      break;
194  
195    case INT:
196 <    current_atom->assignInt( the_event->evt.asmt.lhs,
197 <                            the_event->evt.asmt.rhs.ival );
196 >    the_event->err_msg =
197 >      current_atom->assignInt( the_event->evt.asmt.lhs,
198 >                               the_event->evt.asmt.rhs.ival );
199 >    if( the_event->err_msg != NULL ) return 0;
200      return 1;
201      break;
202  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines