29 #include "sion_fortran_ompi.h"    58                           sion_int64 *chunksize, 
    59                   sion_int32 *fsblksize, 
    68   char     *fname_tmp,*fmode_tmp;
    69   MPI_Comm  cgComm,clComm;
    71   fname_tmp = (
char *) malloc((
size_t) ((fname_len + 1) * 
sizeof(
char)));
    72   fmode_tmp = (
char *) malloc((
size_t) ((file_mode_len + 1) * 
sizeof(
char)));
    75   strncpy(fname_tmp, fname, fname_len);
    76   strncpy(fmode_tmp, file_mode, file_mode_len);
    78   fname_tmp[fname_len] = 
'\0';
    79   fmode_tmp[file_mode_len] = 
'\0';
    81   cgComm = MPI_Comm_f2c(*fgComm);
    82   clComm = MPI_Comm_f2c(*flComm); 
    84 #ifdef SION_DEBUG_UNUSED    87       if (*globalrank == 0){
    88         if (cgComm == MPI_COMM_WORLD) fprintf(stderr,
"COMM_WORLD selected\n");
    89         fprintf(stderr,
"fsion_paropen_ompi_c: filename_len: %d\n", (
int) fname_len);
    90         fprintf(stderr,
"fsion_paropen_ompi_c: filename: %s\n",fname_tmp);
    92         fprintf(stderr,
"fsion_paropen_ompi_c: filemode_len: %d\n", (
int) file_mode_len);
    93         fprintf(stderr,
"fsion_paropen_ompi_c: filemode: %s\n",fmode_tmp);
    95         fprintf(stderr,
"fsion_paropen_ompi_c: chunksize: %lld\n",*chunksize);
    96         fprintf(stderr,
"fsion_paropen_ompi_c: fsblksize: %d\n",*fsblksize);
    97         fprintf(stderr,
"fsion_paropen_ompi_c: numFiles:  %d\n",*numFiles);
   103   (*sid) = sion_paropen_ompi(fname_tmp, fmode_tmp, numFiles, cgComm, &clComm, chunksize, fsblksize, globalrank, &fileptr, NULL);
   105   *flComm = MPI_Comm_c2f(clComm);
   143                                 sion_int64 *chunksize,
   144                                 sion_int32 *fsblksize,
   153   MPI_Comm  cgComm, clComm;
   156   char     *fname_tmp, *fmode_tmp, *newfname_tmp;
   159   fname_tmp = (
char *) malloc((
size_t) ((fname_len + 1) * 
sizeof(
char)));
   160   fmode_tmp = (
char *) malloc((
size_t) ((file_mode_len + 1) * 
sizeof(
char)));
   161   newfname_tmp = (
char *) malloc((
size_t) ((newfname_len + 1) * 
sizeof(
char)));
   164   strncpy(fname_tmp, fname, fname_len);
   165   strncpy(fmode_tmp, file_mode, file_mode_len);
   167   fname_tmp[fname_len] = 
'\0';
   168   fmode_tmp[file_mode_len] = 
'\0';
   169   newfname_tmp[newfname_len] = 
'\0';
   170   strncpy(newfname_tmp, newfname, newfname_len);
   172   cgComm = MPI_Comm_f2c(*fgComm);
   174   (*sid) = sion_paropen_ompi(fname_tmp, fmode_tmp, numFiles, cgComm, &clComm, chunksize, fsblksize, globalrank, &fileptr, &newfname_tmp);
   176   *flComm = MPI_Comm_c2f(clComm);
   177   strncpy(newfname, newfname_tmp, newfname_len);
   198   (*ierr) = sion_parclose_ompi(*sid);
 
void fsion_parclose_ompi_c(int *sid, int *ierr)
Fortran procedure to close a sion file opened in OpenMP/MPI in parallel.
void fsion_paropen_ompi_c(char *fname, char *file_mode, int *numFiles, MPI_Fint *fgComm, MPI_Fint *flComm, sion_int64 *chunksize, sion_int32 *fsblksize, int *globalrank, char *newfname, int *sid, int fname_len, int file_mode_len, int newfname_len)
Fortran wrapper function that calls sion_paropen_mpi for 1 file.
void fsion_paropen_multi_ompi_c(char *fname, char *file_mode, int *numFiles, MPI_Fint *fgComm, MPI_Fint *flComm, sion_int64 *chunksize, sion_int32 *fsblksize, int *globalrank, int *sid, char *newfname, int fname_len, int file_mode_len, int newfname_len)
Fortran procedure to open multiple sion files in parallel.