--- trunk/mdtools/mpi_implementation/mpiForceField.c 2002/10/18 21:20:23 149 +++ trunk/mdtools/mpi_implementation/mpiForceField.c 2002/10/18 21:20:29 150 @@ -1,5 +1,52 @@ #include #include +#include #include #include + + + +void sendFrcStruct( void *frcStruct, MPI_Datatype structType ){ + + int mpiError; + + mpiError = MPI_Bcast(frcStruct,1,structType,0,MPI_COMM_WORLD); + if (mpiError != MPI_SUCCESS){ + mpiError = MPI_Finalize(); + if (mpiError != MPI_SUCCESS) mpiError = MPI_Abort(MPI_COMM_WORLD,0); + exit (0); + } +} + + +void recieveFrcStruct( void *frcStruct, MPI_Datatype structType ){ + + int mpiError; + + mpiError = MPI_Bcast(frcStruct,1,structType,0,MPI_COMM_WORLD); + if (mpiError != MPI_SUCCESS){ + mpiError = MPI_Finalize(); + if (mpiError != MPI_SUCCESS) mpiError = MPI_Abort(MPI_COMM_WORLD,0); + exit (0); + } +} + +void ffInterfaceExit( char* errMsg ){ + + int mpiError; + int myNode; + + MPI_Comm_rank( MPI_COMM_WORLD, &myNode); + + if( errMsg != NULL ){ + fprintf( stderr, + "Force Field Parameter MPI error at node %d\n" + " => %s\n", + myNode, errMsg ); + } + + mpiError = MPI_Finalize(); + if (mpiError != MPI_SUCCESS) mpiError = MPI_Abort(MPI_COMM_WORLD,0); + exit (0); +}