1af0996ceSBarry Smith #include <petsc/private/fortranimpl.h> 255fcb7f5SSatish Balay 355fcb7f5SSatish Balay #if defined(PETSC_HAVE_FORTRAN_CAPS) 455fcb7f5SSatish Balay #define petscbinaryopen_ PETSCBINARYOPEN 5c1bccaadSBarry Smith #define petsctestfile_ PETSCTESTFILE 6*18d1adefSBarry Smith #define petscbinaryreadint_ PETSCBINARYREADINT 7*18d1adefSBarry Smith #define petscbinaryreadreal_ PETSCBINARYREADREAL 8*18d1adefSBarry Smith #define petscbinaryreadcomplex_ PETSCBINARYREADCOMPLEX 9*18d1adefSBarry Smith #define petscbinaryreadrealcnt_ PETSCBINARYREADREALCNT 10*18d1adefSBarry Smith #define petscbinaryreadcomplexcnt_ PETSCBINARYREADCOMPLEXCNT 11*18d1adefSBarry Smith #define petscbinaryreadint1_ PETSCBINARYREADINT1 12*18d1adefSBarry Smith #define petscbinaryreadread1_ PETSCBINARYREADREAL1 13*18d1adefSBarry Smith #define petscbinaryreadcomplex1_ PETSCBINARYREADCOMPLEX1 14*18d1adefSBarry Smith #define petscbinaryreadintcnt1_ PETSCBINARYREADINT1CNT 15*18d1adefSBarry Smith #define petscbinaryreadrealcnt1_ PETSCBINARYREADREAL1CNT 16*18d1adefSBarry Smith #define petscbinaryreadcomplexcnt1_ PETSCBINARYREADCOMPLEX1CNT 17*18d1adefSBarry Smith #define petscbinarywriteint_ PETSCBINARYWRITEINT 18*18d1adefSBarry Smith #define petscbinarywritereal_ PETSCBINARYWRITEREAL 19*18d1adefSBarry Smith #define petscbinarywritecomplex_ PETSCBINARYWRITECOMPLEX 20*18d1adefSBarry Smith #define petscbinarywriteint1_ PETSCBINARYWRITEINT1 21*18d1adefSBarry Smith #define petscbinarywritereal1_ PETSCBINARYWRITEREAL1 22*18d1adefSBarry Smith #define petscbinarywritecomplex1_ PETSCBINARYWRITECOMPLEX1 2355fcb7f5SSatish Balay #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 2455fcb7f5SSatish Balay #define petscbinaryopen_ petscbinaryopen 25a8cc4164SSatish Balay #define petsctestfile_ petsctestfile 26*18d1adefSBarry Smith #define petscbinaryreadint_ petscbinaryreadint 27*18d1adefSBarry Smith #define petscbinaryreadreal_ petscbinaryreadreal 28*18d1adefSBarry Smith #define petscbinaryreadcomplex_ petscbinaryreadcomplex 29*18d1adefSBarry Smith #define petscbinaryreadrealcnt_ petscbinaryreadrealcnt 30*18d1adefSBarry Smith #define petscbinaryreadcomplexcnt_ petscbinaryreadcomplexcnt 31*18d1adefSBarry Smith #define petscbinaryreadint1_ petscbinaryreadint1 32*18d1adefSBarry Smith #define petscbinaryreadread1_ petscbinaryreadread1 33*18d1adefSBarry Smith #define petscbinaryreadcomplex1_ petscbinaryreadcomplex1 34*18d1adefSBarry Smith #define petscbinaryreadintcnt1_ petscbinaryreadintcnt1 35*18d1adefSBarry Smith #define petscbinaryreadrealcnt1_ petscbinaryreadrealcnt1 36*18d1adefSBarry Smith #define petscbinaryreadcomplexcnt1_ petscbinaryreadcomplexcnt1 37*18d1adefSBarry Smith #define petscbinarywriteint_ petscbinarywriteint 38*18d1adefSBarry Smith #define petscbinarywritereal_ petscbinarywritereal 39*18d1adefSBarry Smith #define petscbinarywritecomplex_ petscbinarywritecomplex 40*18d1adefSBarry Smith #define petscbinarywriteint1_ petscbinarywriteint1 41*18d1adefSBarry Smith #define petscbinarywritereal1_ petscbinarywritereal1 42*18d1adefSBarry Smith #define petscbinarywritecomplex1_ petscbinarywritecomplex1 4355fcb7f5SSatish Balay #endif 4455fcb7f5SSatish Balay 45a9acdec7SBarry Smith /* Definitions of Fortran Wrapper routines */ 46a9acdec7SBarry Smith #if defined(__cplusplus) 47a9acdec7SBarry Smith extern "C" { 48a9acdec7SBarry Smith #endif 49a9acdec7SBarry Smith 50a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinarywriteint_(int *fd,void*p,PetscInt *n,PetscDataType *type,PetscBool *istemp, int *ierr) 51a9acdec7SBarry Smith { 52a9acdec7SBarry Smith *ierr = PetscBinaryWrite(*fd,p,*n,*type,*istemp); 53a9acdec7SBarry Smith } 54a9acdec7SBarry Smith 55a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinarywritereal_(int *fd,void*p,PetscInt *n,PetscDataType *type,PetscBool *istemp, int *ierr) 56a9acdec7SBarry Smith { 57a9acdec7SBarry Smith *ierr = PetscBinaryWrite(*fd,p,*n,*type,*istemp); 58a9acdec7SBarry Smith } 59a9acdec7SBarry Smith 60a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinarywritecomplex_(int *fd,void*p,PetscInt *n,PetscDataType *type,PetscBool *istemp, int *ierr) 61a9acdec7SBarry Smith { 62a9acdec7SBarry Smith *ierr = PetscBinaryWrite(*fd,p,*n,*type,*istemp); 63a9acdec7SBarry Smith } 64a9acdec7SBarry Smith 65a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinarywriteint1_(int *fd,void*p,PetscInt *n,PetscDataType *type,PetscBool *istemp, int *ierr) 66a9acdec7SBarry Smith { 67a9acdec7SBarry Smith *ierr = PetscBinaryWrite(*fd,p,*n,*type,*istemp); 68a9acdec7SBarry Smith } 69a9acdec7SBarry Smith 70a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinarywritereal1_(int *fd,void*p,PetscInt *n,PetscDataType *type,PetscBool *istemp, int *ierr) 71a9acdec7SBarry Smith { 72a9acdec7SBarry Smith *ierr = PetscBinaryWrite(*fd,p,*n,*type,*istemp); 73a9acdec7SBarry Smith } 74a9acdec7SBarry Smith 75a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinarywritecomplex1_(int *fd,void*p,PetscInt *n,PetscDataType *type,PetscBool *istemp, int *ierr) 76a9acdec7SBarry Smith { 77a9acdec7SBarry Smith *ierr = PetscBinaryWrite(*fd,p,*n,*type,*istemp); 78a9acdec7SBarry Smith } 79a9acdec7SBarry Smith 80390e1bf2SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryopen_(char* name PETSC_MIXED_LEN(len),PetscFileMode *type,int *fd, 8155fcb7f5SSatish Balay PetscErrorCode *ierr PETSC_END_LEN(len)) 8255fcb7f5SSatish Balay { 8355fcb7f5SSatish Balay char *c1; 8455fcb7f5SSatish Balay 8555fcb7f5SSatish Balay FIXCHAR(name,len,c1); 86d49bb8f9SBarry Smith *ierr = PetscBinaryOpen(c1,*type,fd);if (*ierr) return; 8755fcb7f5SSatish Balay FREECHAR(name,c1); 8855fcb7f5SSatish Balay } 8955fcb7f5SSatish Balay 90a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadint_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 91a9acdec7SBarry Smith { 92a9acdec7SBarry Smith CHKFORTRANNULLINTEGER(count); 93a9acdec7SBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 94a9acdec7SBarry Smith } 95a9acdec7SBarry Smith 96a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadreal_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 97a9acdec7SBarry Smith { 98a9acdec7SBarry Smith CHKFORTRANNULLINTEGER(count); 99a9acdec7SBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 100a9acdec7SBarry Smith } 101a9acdec7SBarry Smith 102a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadcomplex_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 103a9acdec7SBarry Smith { 104a9acdec7SBarry Smith CHKFORTRANNULLINTEGER(count); 105a9acdec7SBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 106a9acdec7SBarry Smith } 107a9acdec7SBarry Smith 108a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadint1_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 109a9acdec7SBarry Smith { 110a9acdec7SBarry Smith CHKFORTRANNULLINTEGER(count); 111a9acdec7SBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 112a9acdec7SBarry Smith } 113a9acdec7SBarry Smith 114a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadreal1_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 115a9acdec7SBarry Smith { 116a9acdec7SBarry Smith CHKFORTRANNULLINTEGER(count); 117a9acdec7SBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 118a9acdec7SBarry Smith } 119a9acdec7SBarry Smith 120a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadcomplex1_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 1219860990eSLisandro Dalcin { 1229860990eSLisandro Dalcin CHKFORTRANNULLINTEGER(count); 1239860990eSLisandro Dalcin *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 1249860990eSLisandro Dalcin } 1259860990eSLisandro Dalcin 126*18d1adefSBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadintcnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 127*18d1adefSBarry Smith { 128*18d1adefSBarry Smith CHKFORTRANNULLINTEGER(count); 129*18d1adefSBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 130*18d1adefSBarry Smith } 131*18d1adefSBarry Smith 132*18d1adefSBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadrealcnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 133*18d1adefSBarry Smith { 134*18d1adefSBarry Smith CHKFORTRANNULLINTEGER(count); 135*18d1adefSBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 136*18d1adefSBarry Smith } 137*18d1adefSBarry Smith 138*18d1adefSBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadcomplexcnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 139*18d1adefSBarry Smith { 140*18d1adefSBarry Smith CHKFORTRANNULLINTEGER(count); 141*18d1adefSBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 142*18d1adefSBarry Smith } 143*18d1adefSBarry Smith 144*18d1adefSBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadint1cnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 145*18d1adefSBarry Smith { 146*18d1adefSBarry Smith CHKFORTRANNULLINTEGER(count); 147*18d1adefSBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 148*18d1adefSBarry Smith } 149*18d1adefSBarry Smith 150*18d1adefSBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadreal1cnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 151*18d1adefSBarry Smith { 152*18d1adefSBarry Smith CHKFORTRANNULLINTEGER(count); 153*18d1adefSBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 154*18d1adefSBarry Smith } 155*18d1adefSBarry Smith 156*18d1adefSBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadcomplex1cnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 157*18d1adefSBarry Smith { 158*18d1adefSBarry Smith CHKFORTRANNULLINTEGER(count); 159*18d1adefSBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 160*18d1adefSBarry Smith } 161*18d1adefSBarry Smith 162390e1bf2SBarry Smith PETSC_EXTERN void PETSC_STDCALL petsctestfile_(char* name PETSC_MIXED_LEN(len),char* mode PETSC_MIXED_LEN(len1),PetscBool *flg,PetscErrorCode *ierr PETSC_END_LEN(len) PETSC_END_LEN(len1)) 163c1bccaadSBarry Smith { 164ca43db0aSBarry Smith char *c1; 165c1bccaadSBarry Smith 166c1bccaadSBarry Smith FIXCHAR(name,len,c1); 167d49bb8f9SBarry Smith *ierr = PetscTestFile(c1,*mode,flg);if (*ierr) return; 168c1bccaadSBarry Smith FREECHAR(name,c1); 169c1bccaadSBarry Smith } 170*18d1adefSBarry Smith 171*18d1adefSBarry Smith #if defined(__cplusplus) 172*18d1adefSBarry Smith } 173*18d1adefSBarry Smith #endif 174