mpi module plugged.
[scilab.git] / scilab / modules / startup / src / c / initMPI.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2013 - S/E - Sylvestre Ledru
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10  *
11  */
12
13 #include <stdio.h>
14 #include <mpi.h>                        // for MPI_Error_string, MPI_Init, etc
15 #include <stddef.h>                     // for NULL
16 #include "localization.h"               // for _
17 #include "initMPI.h"
18
19 MPI_Errhandler errhdl;
20
21 void MPIErrHandler(MPI_Comm * comm, int *errorcode, ...)
22 {
23     char buffer[4096];
24     int resultlen;
25
26     MPI_Error_string(*errorcode, buffer, &resultlen);
27     buffer[resultlen] = 0;
28     fprintf(stderr, _("MPI error: %s\n"), buffer);
29 }
30
31
32 int initScilabMPI()
33 {
34     int flag;
35     MPI_Initialized(&flag);
36     if (!flag)
37     {
38         /* MPI Not yet initialized */
39         MPI_Init(NULL, NULL);
40     }
41     return 0;
42 }