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