SIONlib  1.7.4
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-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 /* #define _FORTRANUNDERSCORE
26  #define _FORTRANNOCAPS
27  #define _FORTRANCAPS
28  #define _FORTRANDOUBLEUNDERSCORE */
29 #include "sion.h"
30 #include "sion_debug.h"
31 #include "sion_fd.h"
32 #include "sion_filedesc.h"
33 #include "sion_fortran_writeread_f77.h"
34 
35 
36 #define DFUNCTION "fsion_write"
37 
52 void fsion_write(const void *data,
53  sion_int64 *size,
54  sion_int64 *nitems,
55  int *sid,
56  sion_int64 *rc)
57 {
58  /* (*rc) = (sion_int64) fwrite(data, *size, (int) *nitems, sion_get_fp(*sid)); */
59  DPRINTFP((1, DFUNCTION, -1, "enter size=%ld nitems=%ld\n",(long) *size, (long) *nitems));
60  (*rc) = (sion_int64) sion_fwrite(data, (size_t) *size, (size_t) *nitems, *sid);
61  DPRINTFP((1, DFUNCTION, -1, "leave rc=%d\n",*rc));
62 }
63 #undef DFUNCTION
64 
65 #define DFUNCTION "fsion_fwrite"
66 
81 void fsion_fwrite(const void *data,
82  sion_int64 *size,
83  sion_int64 *nitems,
84  int *sid,
85  sion_int64 *rc)
86 {
87  /* (*rc) = (sion_int64) fwrite(data, *size, (int) *nitems, sion_get_fp(*sid)); */
88  DPRINTFP((1, DFUNCTION, -1, "enter size=%ld nitems=%ld\n",(long) *size, (long) *nitems));
89  (*rc) = (sion_int64) sion_fwrite(data, (size_t) *size, (size_t) *nitems, *sid);
90  DPRINTFP((1, DFUNCTION, -1, "leave rc=%d\n",*rc));
91 }
92 #undef DFUNCTION
93 
94 
95 
111 void fsion_read(void *data,
112  sion_int64 *size,
113  sion_int64 *nitems,
114  int *sid,
115  sion_int64 *rc)
116 {
117  /* (*rc) = (sion_int64) fread(data, *size, (int) *nitems, sion_get_fp(*sid)); */
118  (*rc) = (sion_int64) sion_fread(data, (size_t) *size, (size_t) *nitems, *sid);
119 }
120 
136 void fsion_fread(void *data,
137  sion_int64 *size,
138  sion_int64 *nitems,
139  int *sid,
140  sion_int64 *rc)
141 {
142  /* (*rc) = (sion_int64) fread(data, *size, (int) *nitems, sion_get_fp(*sid)); */
143  (*rc) = (sion_int64) sion_fread(data, (size_t) *size, (size_t) *nitems, *sid);
144 }
145 
size_t sion_fwrite(const void *data, size_t size, size_t nitems, int sid)
Write data to sion file.
Definition: sion_common.c:470
size_t sion_fread(void *data, size_t size, size_t nitems, int sid)
Read data from sion file.
Definition: sion_common.c:609