SIONlib  1.7.4
Scalable I/O library for parallel access to task-local files
sion_fortran_mpi.h
1 /****************************************************************************
2 ** SIONLIB http://www.fz-juelich.de/jsc/sionlib **
3 *****************************************************************************
4 ** Copyright (c) 2008-2019 **
5 ** Forschungszentrum Juelich, Juelich Supercomputing Centre **
6 ** **
7 ** See the file COPYRIGHT in the package base directory for details **
8 ****************************************************************************/
9 #ifndef SION_FORTRAN_MPI_H_
10 #define SION_FORTRAN_MPI_H_
11 
12 #include <mpi.h>
13 #include "sion.h"
14 
15 /* sion_paropen_mpi() */
16 #if defined(_FORTRANCAPS)
17 #define fsion_paropen_mpi_c FSION_PAROPEN_MPI_C
18 
19 #elif defined(_FORTRANNOCAPS)
20 #define fsion_paropen_mpi_c fsion_paropen_mpi_c
21 
22 #elif defined(_FORTRANUNDERSCORE)
23 #define fsion_paropen_mpi_c fsion_paropen_mpi_c_
24 
25 #elif defined(_FORTRANDOUBLEUNDERSCORE)
26 #define fsion_paropen_mpi_c fsion_paropen_mpi_c__
27 
28 #elif defined(_FORTRANNOUNDERSCORE)
29 #else
30 #error nothing defined for fortran externals
31 #endif
32 void fsion_paropen_mpi_c(char *fname,
33  char *file_mode,
34  int *numFiles,
35  MPI_Fint * fgComm,
36  MPI_Fint * flComm,
37  sion_int64 *chunksize,
38  sion_int32 *fsblksize,
39  int *globalrank,
40  char *newfname,
41  int *sid,
42  int fname_len,
43  int file_mode_len,
44  int newfname_len);
45 
46 /* sion_paropen_multi_mpi() */
47 #if defined(_FORTRANCAPS)
48 #define fsion_paropen_multi_mpi_c FSION_PAROPEN_MULTI_MPI_C
49 
50 #elif defined(_FORTRANNOCAPS)
51 #define fsion_paropen_multi_mpi_c fsion_paropen_multi_mpi_c
52 
53 #elif defined(_FORTRANUNDERSCORE)
54 #define fsion_paropen_multi_mpi_c fsion_paropen_multi_mpi_c_
55 
56 #elif defined(_FORTRANDOUBLEUNDERSCORE)
57 #define fsion_paropen_multi_mpi_c fsion_paropen_multi_mpi_c__
58 
59 #elif defined(_FORTRANNOUNDERSCORE)
60 #else
61 #error nothing defined for fortran externals
62 #endif
63 void fsion_paropen_multi_mpi_c( char *fname,
64  char *file_mode,
65  int *numFiles,
66  MPI_Fint *fgComm,
67  MPI_Fint *flComm,
68  sion_int64 *chunksize,
69  sion_int32 *fsblksize,
70  int *globalrank,
71  int *sid,
72  char *newfname,
73  int fname_len,
74  int file_mode_len,
75  int newfname_len);
76 
77 /* sion_parclose_mpi() */
78 #if defined(_FORTRANCAPS)
79 #define fsion_parclose_mpi_c FSION_R
80 
81 #elif defined(_FORTRANNOCAPS)
82 #define fsion_parclose_mpi_c fsion_parclose_mpi_c
83 
84 #elif defined(_FORTRANUNDERSCORE)
85 #define fsion_parclose_mpi_c fsion_parclose_mpi_c_
86 
87 #elif defined(_FORTRANDOUBLEUNDERSCORE)
88 #define fsion_parclose_mpi_c fsion_parclose_mpi_c__
89 
90 #elif defined(_FORTRANNOUNDERSCORE)
91 #else
92 #error nothing defined for fortran externals
93 #endif
94 void fsion_parclose_mpi_c(int *sid, int *ierr);
95 
96 #endif /* SION_FORTRAN_MPI_H_ */
void fsion_parclose_mpi_c(int *sid, int *ierr)
Fortran procedure to close a sion file in parallel.
void fsion_paropen_mpi_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)
Wrapper function that calls fsion_paropen_multi_mpi for 1 file.
void fsion_paropen_multi_mpi_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.