xref: /petsc/src/sys/fileio/ftn-custom/zsysiof.c (revision ccb4e88a40f0b86eaeca07ff64c64e4de2fae686)
1 #include <petsc/private/fortranimpl.h>
2 
3 #if defined(PETSC_HAVE_FORTRAN_CAPS)
4 #define petscbinaryopen_            PETSCBINARYOPEN
5 #define petsctestfile_              PETSCTESTFILE
6 #define petscbinaryreadint_         PETSCBINARYREADINT
7 #define petscbinaryreadreal_        PETSCBINARYREADREAL
8 #define petscbinaryreadcomplex_     PETSCBINARYREADCOMPLEX
9 #define petscbinaryreadrealcnt_     PETSCBINARYREADREALCNT
10 #define petscbinaryreadcomplexcnt_  PETSCBINARYREADCOMPLEXCNT
11 #define petscbinaryreadintcnt_      PETSCBINARYREADINTCNT
12 #define petscbinaryreadint1_        PETSCBINARYREADINT1
13 #define petscbinaryreadreal1_       PETSCBINARYREADREAL1
14 #define petscbinaryreadcomplex1_    PETSCBINARYREADCOMPLEX1
15 #define petscbinaryreadint1cnt_     PETSCBINARYREADINT1CNT
16 #define petscbinaryreadreal1cnt_    PETSCBINARYREADREAL1CNT
17 #define petscbinaryreadcomplex1cnt_ PETSCBINARYREADCOMPLEX1CNT
18 #define petscbinarywriteint_        PETSCBINARYWRITEINT
19 #define petscbinarywritereal_       PETSCBINARYWRITEREAL
20 #define petscbinarywritecomplex_    PETSCBINARYWRITECOMPLEX
21 #define petscbinarywriteint1_       PETSCBINARYWRITEINT1
22 #define petscbinarywritereal1_      PETSCBINARYWRITEREAL1
23 #define petscbinarywritecomplex1_   PETSCBINARYWRITECOMPLEX1
24 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
25 #define petscbinaryopen_            petscbinaryopen
26 #define petsctestfile_              petsctestfile
27 #define petscbinaryreadint_         petscbinaryreadint
28 #define petscbinaryreadreal_        petscbinaryreadreal
29 #define petscbinaryreadcomplex_     petscbinaryreadcomplex
30 #define petscbinaryreadintcnt_      petscbinaryreadintcnt
31 #define petscbinaryreadrealcnt_     petscbinaryreadrealcnt
32 #define petscbinaryreadcomplexcnt_  petscbinaryreadcomplexcnt
33 #define petscbinaryreadint1_        petscbinaryreadint1
34 #define petscbinaryreadrea11_       petscbinaryreadrea11
35 #define petscbinaryreadcomplex1_    petscbinaryreadcomplex1
36 #define petscbinaryreadint1cnt_     petscbinaryreadint1cnt
37 #define petscbinaryreadreal1cnt_    petscbinaryreadreal1cnt
38 #define petscbinaryreadcomplex1cnt_ petscbinaryreadcomplex1cnt
39 #define petscbinarywriteint_        petscbinarywriteint
40 #define petscbinarywritereal_       petscbinarywritereal
41 #define petscbinarywritecomplex_    petscbinarywritecomplex
42 #define petscbinarywriteint1_       petscbinarywriteint1
43 #define petscbinarywritereal1_      petscbinarywritereal1
44 #define petscbinarywritecomplex1_   petscbinarywritecomplex1
45 #endif
46 
47 /* Definitions of Fortran Wrapper routines */
48 #if defined(__cplusplus)
49 extern "C" {
50 #endif
51 
52 PETSC_EXTERN void  petscbinarywriteint_(int *fd,void*p,PetscInt *n,PetscDataType *type, int *ierr)
53 {
54   *ierr = PetscBinaryWrite(*fd,p,*n,*type);
55 }
56 
57 PETSC_EXTERN void  petscbinarywritereal_(int *fd,void*p,PetscInt *n,PetscDataType *type, int *ierr)
58 {
59   *ierr = PetscBinaryWrite(*fd,p,*n,*type);
60 }
61 
62 PETSC_EXTERN void  petscbinarywritecomplex_(int *fd,void*p,PetscInt *n,PetscDataType *type, int *ierr)
63 {
64   *ierr = PetscBinaryWrite(*fd,p,*n,*type);
65 }
66 
67 PETSC_EXTERN void  petscbinarywriteint1_(int *fd,void*p,PetscInt *n,PetscDataType *type, int *ierr)
68 {
69   *ierr = PetscBinaryWrite(*fd,p,*n,*type);
70 }
71 
72 PETSC_EXTERN void  petscbinarywritereal1_(int *fd,void*p,PetscInt *n,PetscDataType *type, int *ierr)
73 {
74   *ierr = PetscBinaryWrite(*fd,p,*n,*type);
75 }
76 
77 PETSC_EXTERN void  petscbinarywritecomplex1_(int *fd,void*p,PetscInt *n,PetscDataType *type, int *ierr)
78 {
79   *ierr = PetscBinaryWrite(*fd,p,*n,*type);
80 }
81 
82 PETSC_EXTERN void petscbinaryopen_(char* name,PetscFileMode *type,int *fd,
83                                     PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len)
84 {
85   char *c1;
86 
87   FIXCHAR(name,len,c1);
88   *ierr = PetscBinaryOpen(c1,*type,fd);if (*ierr) return;
89   FREECHAR(name,c1);
90 }
91 
92 PETSC_EXTERN void  petscbinaryreadint_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr)
93 {
94   CHKFORTRANNULLINTEGER(count);
95   *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return;
96 }
97 
98 PETSC_EXTERN void  petscbinaryreadreal_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr)
99 {
100   CHKFORTRANNULLINTEGER(count);
101   *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return;
102 }
103 
104 PETSC_EXTERN void  petscbinaryreadcomplex_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr)
105 {
106   CHKFORTRANNULLINTEGER(count);
107   *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return;
108 }
109 
110 PETSC_EXTERN void  petscbinaryreadint1_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr)
111 {
112   CHKFORTRANNULLINTEGER(count);
113   *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return;
114 }
115 
116 PETSC_EXTERN void  petscbinaryreadreal1_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr)
117 {
118   CHKFORTRANNULLINTEGER(count);
119   *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return;
120 }
121 
122 PETSC_EXTERN void  petscbinaryreadcomplex1_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr)
123 {
124   CHKFORTRANNULLINTEGER(count);
125   *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return;
126 }
127 
128 PETSC_EXTERN void  petscbinaryreadintcnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr)
129 {
130   CHKFORTRANNULLINTEGER(count);
131   *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return;
132 }
133 
134 PETSC_EXTERN void  petscbinaryreadrealcnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr)
135 {
136   CHKFORTRANNULLINTEGER(count);
137   *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return;
138 }
139 
140 PETSC_EXTERN void  petscbinaryreadcomplexcnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr)
141 {
142   CHKFORTRANNULLINTEGER(count);
143   *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return;
144 }
145 
146 PETSC_EXTERN void  petscbinaryreadint1cnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr)
147 {
148   CHKFORTRANNULLINTEGER(count);
149   *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return;
150 }
151 
152 PETSC_EXTERN void  petscbinaryreadreal1cnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr)
153 {
154   CHKFORTRANNULLINTEGER(count);
155   *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return;
156 }
157 
158 PETSC_EXTERN void  petscbinaryreadcomplex1cnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr)
159 {
160   CHKFORTRANNULLINTEGER(count);
161   *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return;
162 }
163 
164 PETSC_EXTERN void petsctestfile_(char* name,char* mode,PetscBool *flg,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len,PETSC_FORTRAN_CHARLEN_T len1)
165 {
166   char *c1;
167 
168   FIXCHAR(name,len,c1);
169   *ierr = PetscTestFile(c1,*mode,flg);if (*ierr) return;
170   FREECHAR(name,c1);
171 }
172 
173 #if defined(__cplusplus)
174 }
175 #endif
176