SIONlib  1.7.4
Scalable I/O library for parallel access to task-local files
sion_fortran_ompi.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_OMPI_C_H_
10 #define SION_FORTRAN_OMPI_C_H_
11 
12 #include <mpi.h>
13 #include "sion.h"
14 
15 /* sion_paropen_ompi_c() */
16 #if defined(_FORTRANCAPS)
17 #define fsion_paropen_ompi_c FSION_PAROPEN_OMPI_C
18 
19 #elif defined(_FORTRANNOCAPS)
20 #define fsion_paropen_ompi_c fsion_paropen_ompi_c
21 
22 #elif defined(_FORTRANUNDERSCORE)
23 #define fsion_paropen_ompi_c fsion_paropen_ompi_c_
24 
25 #elif defined(_FORTRANDOUBLEUNDERSCORE)
26 #define fsion_paropen_ompi_c fsion_paropen_ompi_c__
27 
28 #elif defined(_FORTRANNOUNDERSCORE)
29 #else
30 #error nothing defined for fortran externals
31 #endif
32 
33 void fsion_paropen_ompi_c(char *fname,
34  char *file_mode,
35  int *numFiles,
36  MPI_Fint * fgComm,
37  MPI_Fint * flComm,
38  sion_int64 *chunksize,
39  sion_int32 *fsblksize,
40  int *globalrank,
41  char *newfname,
42  int *sid,
43  int fname_len,
44  int file_mode_len,
45  int newfname_len);
46 
47 /* sion_paropen_multi_ompi_c() */
48 #if defined(_FORTRANCAPS)
49 #define fsion_paropen_multi_ompi_c FSION_PAROPEN_MULTI_OMPI_C
50 
51 #elif defined(_FORTRANNOCAPS)
52 #define fsion_paropen_multi_ompi_c fsion_paropen_multi_ompi_c
53 
54 #elif defined(_FORTRANUNDERSCORE)
55 #define fsion_paropen_multi_ompi_c fsion_paropen_multi_ompi_c_
56 
57 #elif defined(_FORTRANDOUBLEUNDERSCORE)
58 #define fsion_paropen_multi_ompi_c fsion_paropen_multi_ompi_c__
59 
60 #elif defined(_FORTRANNOUNDERSCORE)
61 #else
62 #error nothing defined for fortran externals
63 #endif
64 void fsion_paropen_multi_ompi_c( char *fname,
65  char *file_mode,
66  int *numFiles,
67  MPI_Fint *fgComm,
68  MPI_Fint *flComm,
69  sion_int64 *chunksize,
70  sion_int32 *fsblksize,
71  int *globalrank,
72  int *sid,
73  char *newfname,
74  int fname_len,
75  int file_mode_len,
76  int newfname_len);
77 
78 /* sion_parclose_ompi_c() */
79 #if defined(_FORTRANCAPS)
80 #define fsion_parclose_ompi_c FSION_PARCLOSE_OMPI_C
81 
82 #elif defined(_FORTRANNOCAPS)
83 #define fsion_parclose_ompi_c fsion_parclose_ompi_c
84 
85 #elif defined(_FORTRANUNDERSCORE)
86 #define fsion_parclose_ompi_c fsion_parclose_ompi_c_
87 
88 #elif defined(_FORTRANDOUBLEUNDERSCORE)
89 #define fsion_parclose_ompi_c fsion_parclose_ompi_c__
90 
91 #elif defined(_FORTRANNOUNDERSCORE)
92 #else
93 #error nothing defined for fortran externals
94 #endif
95 void fsion_parclose_ompi_c(int *sid, int *ierr);
96 
97 #endif /* SION_FORTRAN_OMPI_C_H_ */
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.