SIONlib  1.7.4
Scalable I/O library for parallel access to task-local files
sion_fortran_writeread_mpi_f90.c
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 ****************************************************************************/
19 #define _XOPEN_SOURCE 700
20 
21 #include <stdio.h>
22 #include <stdlib.h>
23 #include <string.h>
24 
25 #include "mpi.h"
26 
27 #include "sion.h"
28 #include "sion_mpi.h"
29 #include "sion_debug.h"
30 #include "sion_fd.h"
31 #include "sion_filedesc.h"
32 #include "sion_fortran_writeread_mpi_f90.h"
33 
34 
35 
36 #define DFUNCTION "fsion_coll_fwrite_mpi_c"
37 
52 void fsion_coll_fwrite_mpi_c(const void *data,
53  sion_int64 *size,
54  sion_int64 *nitems,
55  int *sid,
56  sion_int64 *rc)
57 {
58  DPRINTFP((1, DFUNCTION, -1, "enter size=%ld nitems=%ld\n",(long) *size, (long) *nitems));
59  (*rc) = (sion_int64) sion_coll_fwrite_mpi(data, (size_t) *size, (size_t) *nitems, *sid);
60  DPRINTFP((1, DFUNCTION, -1, "leave rc=%d\n",*rc));
61 }
62 #undef DFUNCTION
63 
64 
65 
66 
82 void fsion_coll_fread_mpi_c(void *data,
83  sion_int64 *size,
84  sion_int64 *nitems,
85  int *sid,
86  sion_int64 *rc)
87 {
88  /* (*rc) = (sion_int64) fread(data, *size, (int) *nitems, sion_get_fp(*sid)); */
89  (*rc) = (sion_int64) sion_coll_fread_mpi(data, (size_t) *size, (size_t) *nitems, *sid);
90 }
91