00001
00002
00003
00004
00005
00006 #include <string.h>
00007 #include "mpioimpl.h"
00008
00009 #ifdef HAVE_WEAK_SYMBOLS
00010
00011 #define MPIO_BUILD_PROFILING
00012 #include "mpioprof.h"
00013 #endif
00014
00015 CtvExtern(int, ADIO_Init_keyval);
00016
00017
00018
00019
00020 void MPIR_MPIOInit(int * error_code) {
00021
00022 int flag;
00023 char myname[] = "MPIR_MPIOInit";
00024
00025
00026 if (CtvAccess(ADIO_Init_keyval) == MPI_KEYVAL_INVALID) {
00027 MPI_Initialized(&flag);
00028
00029
00030 if (!flag) {
00031 *error_code = MPIO_Err_create_code(MPI_SUCCESS,
00032 MPIR_ERR_RECOVERABLE, myname, __LINE__,
00033 MPI_ERR_OTHER, "**initialized", 0);
00034 *error_code = MPIO_Err_return_file(MPI_FILE_NULL, *error_code);
00035 return;
00036 }
00037
00038
00039 MPI_Keyval_create(MPI_NULL_COPY_FN, ADIOI_End_call, &CtvAccess(ADIO_Init_keyval),
00040 (void *) 0);
00041
00042
00043
00044
00045
00046
00047 MPI_Attr_put(MPI_COMM_SELF, CtvAccess(ADIO_Init_keyval), (void *) 0);
00048
00049
00050 ADIO_Init( (int *)0, (char ***)0, error_code);
00051 }
00052 *error_code = MPI_SUCCESS;
00053 }
00054
00055
00056