SIONlib  1.7.1
Scalable I/O library for parallel access to task-local files
sion_fortran_writeread_f77.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 /* #define _FORTRANUNDERSCORE
24  #define _FORTRANNOCAPS
25  #define _FORTRANCAPS
26  #define _FORTRANDOUBLEUNDERSCORE */
27 #include "sion.h"
28 #include "sion_debug.h"
29 #include "sion_fd.h"
30 #include "sion_filedesc.h"
31 #include "sion_fortran_writeread_f77.h"
32 
33 
34 #define DFUNCTION "fsion_write"
35 
50 void fsion_write(const void *data,
51  sion_int64 *size,
52  sion_int64 *nitems,
53  int *sid,
54  sion_int64 *rc)
55 {
56  /* (*rc) = (sion_int64) fwrite(data, *size, (int) *nitems, sion_get_fp(*sid)); */
57  DPRINTFP((1, DFUNCTION, -1, "enter size=%ld nitems=%ld\n",(long) *size, (long) *nitems));
58  (*rc) = (sion_int64) sion_fwrite(data, (size_t) *size, (size_t) *nitems, *sid);
59  DPRINTFP((1, DFUNCTION, -1, "leave rc=%d\n",*rc));
60 }
61 #undef DFUNCTION
62 
63 #define DFUNCTION "fsion_fwrite"
64 
79 void fsion_fwrite(const void *data,
80  sion_int64 *size,
81  sion_int64 *nitems,
82  int *sid,
83  sion_int64 *rc)
84 {
85  /* (*rc) = (sion_int64) fwrite(data, *size, (int) *nitems, sion_get_fp(*sid)); */
86  DPRINTFP((1, DFUNCTION, -1, "enter size=%ld nitems=%ld\n",(long) *size, (long) *nitems));
87  (*rc) = (sion_int64) sion_fwrite(data, (size_t) *size, (size_t) *nitems, *sid);
88  DPRINTFP((1, DFUNCTION, -1, "leave rc=%d\n",*rc));
89 }
90 #undef DFUNCTION
91 
92 
93 
109 void fsion_read(void *data,
110  sion_int64 *size,
111  sion_int64 *nitems,
112  int *sid,
113  sion_int64 *rc)
114 {
115  /* (*rc) = (sion_int64) fread(data, *size, (int) *nitems, sion_get_fp(*sid)); */
116  (*rc) = (sion_int64) sion_fread(data, (size_t) *size, (size_t) *nitems, *sid);
117 }
118 
134 void fsion_fread(void *data,
135  sion_int64 *size,
136  sion_int64 *nitems,
137  int *sid,
138  sion_int64 *rc)
139 {
140  /* (*rc) = (sion_int64) fread(data, *size, (int) *nitems, sion_get_fp(*sid)); */
141  (*rc) = (sion_int64) sion_fread(data, (size_t) *size, (size_t) *nitems, *sid);
142 }
143 
size_t sion_fwrite(const void *data, size_t size, size_t nitems, int sid)
Write data to sion file.
Definition: sion_common.c:472
size_t sion_fread(void *data, size_t size, size_t nitems, int sid)
Read data from sion file.
Definition: sion_common.c:591