SIONlib  1.7.1
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-2016 **
5 ** Forschungszentrum Juelich, Juelich Supercomputing Centre **
6 ** **
7 ** See the file COPYRIGHT in the package base directory for details **
8 ****************************************************************************/
19 #include <stdio.h>
20 #include <stdlib.h>
21 #include <string.h>
22 
23 #include "mpi.h"
24 
25 #include "sion.h"
26 #include "sion_mpi.h"
27 #include "sion_debug.h"
28 #include "sion_fd.h"
29 #include "sion_filedesc.h"
30 #include "sion_fortran_writeread_mpi_f90.h"
31 
32 
33 
34 #define DFUNCTION "fsion_coll_fwrite_mpi_c"
35 
50 void fsion_coll_fwrite_mpi_c(const void *data,
51  sion_int64 *size,
52  sion_int64 *nitems,
53  int *sid,
54  sion_int64 *rc)
55 {
56  DPRINTFP((1, DFUNCTION, -1, "enter size=%ld nitems=%ld\n",(long) *size, (long) *nitems));
57  (*rc) = (sion_int64) sion_coll_fwrite_mpi(data, (size_t) *size, (size_t) *nitems, *sid);
58  DPRINTFP((1, DFUNCTION, -1, "leave rc=%d\n",*rc));
59 }
60 #undef DFUNCTION
61 
62 
63 
64 
80 void fsion_coll_fread_mpi_c(void *data,
81  sion_int64 *size,
82  sion_int64 *nitems,
83  int *sid,
84  sion_int64 *rc)
85 {
86  /* (*rc) = (sion_int64) fread(data, *size, (int) *nitems, sion_get_fp(*sid)); */
87  (*rc) = (sion_int64) sion_coll_fread_mpi(data, (size_t) *size, (size_t) *nitems, *sid);
88 }
89