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 618d1adefSBarry Smith #define petscbinaryreadint_ PETSCBINARYREADINT 718d1adefSBarry Smith #define petscbinaryreadreal_ PETSCBINARYREADREAL 818d1adefSBarry Smith #define petscbinaryreadcomplex_ PETSCBINARYREADCOMPLEX 918d1adefSBarry Smith #define petscbinaryreadrealcnt_ PETSCBINARYREADREALCNT 1018d1adefSBarry Smith #define petscbinaryreadcomplexcnt_ PETSCBINARYREADCOMPLEXCNT 11*296ae53dSBarry Smith #define petscbinaryreadintcnt_ PETSCBINARYREADINTCNT 1218d1adefSBarry Smith #define petscbinaryreadint1_ PETSCBINARYREADINT1 13*296ae53dSBarry Smith #define petscbinaryreadreal1_ PETSCBINARYREADREAL1 1418d1adefSBarry Smith #define petscbinaryreadcomplex1_ PETSCBINARYREADCOMPLEX1 15*296ae53dSBarry Smith #define petscbinaryreadint1cnt_ PETSCBINARYREADINT1CNT 16*296ae53dSBarry Smith #define petscbinaryreadreal1cnt_ PETSCBINARYREADREAL1CNT 17*296ae53dSBarry Smith #define petscbinaryreadcomplex1cnt_ PETSCBINARYREADCOMPLEX1CNT 1818d1adefSBarry Smith #define petscbinarywriteint_ PETSCBINARYWRITEINT 1918d1adefSBarry Smith #define petscbinarywritereal_ PETSCBINARYWRITEREAL 2018d1adefSBarry Smith #define petscbinarywritecomplex_ PETSCBINARYWRITECOMPLEX 2118d1adefSBarry Smith #define petscbinarywriteint1_ PETSCBINARYWRITEINT1 2218d1adefSBarry Smith #define petscbinarywritereal1_ PETSCBINARYWRITEREAL1 2318d1adefSBarry Smith #define petscbinarywritecomplex1_ PETSCBINARYWRITECOMPLEX1 2455fcb7f5SSatish Balay #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 2555fcb7f5SSatish Balay #define petscbinaryopen_ petscbinaryopen 26a8cc4164SSatish Balay #define petsctestfile_ petsctestfile 2718d1adefSBarry Smith #define petscbinaryreadint_ petscbinaryreadint 2818d1adefSBarry Smith #define petscbinaryreadreal_ petscbinaryreadreal 2918d1adefSBarry Smith #define petscbinaryreadcomplex_ petscbinaryreadcomplex 30*296ae53dSBarry Smith #define petscbinaryreadintcnt_ petscbinaryreadintcnt 3118d1adefSBarry Smith #define petscbinaryreadrealcnt_ petscbinaryreadrealcnt 3218d1adefSBarry Smith #define petscbinaryreadcomplexcnt_ petscbinaryreadcomplexcnt 3318d1adefSBarry Smith #define petscbinaryreadint1_ petscbinaryreadint1 34*296ae53dSBarry Smith #define petscbinaryreadrea11_ petscbinaryreadrea11 3518d1adefSBarry Smith #define petscbinaryreadcomplex1_ petscbinaryreadcomplex1 36*296ae53dSBarry Smith #define petscbinaryreadint1cnt_ petscbinaryreadint1cnt 37*296ae53dSBarry Smith #define petscbinaryreadreal1cnt_ petscbinaryreadreal1cnt 38*296ae53dSBarry Smith #define petscbinaryreadcomplex1cnt_ petscbinaryreadcomplex1cnt 3918d1adefSBarry Smith #define petscbinarywriteint_ petscbinarywriteint 4018d1adefSBarry Smith #define petscbinarywritereal_ petscbinarywritereal 4118d1adefSBarry Smith #define petscbinarywritecomplex_ petscbinarywritecomplex 4218d1adefSBarry Smith #define petscbinarywriteint1_ petscbinarywriteint1 4318d1adefSBarry Smith #define petscbinarywritereal1_ petscbinarywritereal1 4418d1adefSBarry Smith #define petscbinarywritecomplex1_ petscbinarywritecomplex1 4555fcb7f5SSatish Balay #endif 4655fcb7f5SSatish Balay 47a9acdec7SBarry Smith /* Definitions of Fortran Wrapper routines */ 48a9acdec7SBarry Smith #if defined(__cplusplus) 49a9acdec7SBarry Smith extern "C" { 50a9acdec7SBarry Smith #endif 51a9acdec7SBarry Smith 52a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinarywriteint_(int *fd,void*p,PetscInt *n,PetscDataType *type,PetscBool *istemp, int *ierr) 53a9acdec7SBarry Smith { 54a9acdec7SBarry Smith *ierr = PetscBinaryWrite(*fd,p,*n,*type,*istemp); 55a9acdec7SBarry Smith } 56a9acdec7SBarry Smith 57a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinarywritereal_(int *fd,void*p,PetscInt *n,PetscDataType *type,PetscBool *istemp, int *ierr) 58a9acdec7SBarry Smith { 59a9acdec7SBarry Smith *ierr = PetscBinaryWrite(*fd,p,*n,*type,*istemp); 60a9acdec7SBarry Smith } 61a9acdec7SBarry Smith 62a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinarywritecomplex_(int *fd,void*p,PetscInt *n,PetscDataType *type,PetscBool *istemp, int *ierr) 63a9acdec7SBarry Smith { 64a9acdec7SBarry Smith *ierr = PetscBinaryWrite(*fd,p,*n,*type,*istemp); 65a9acdec7SBarry Smith } 66a9acdec7SBarry Smith 67a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinarywriteint1_(int *fd,void*p,PetscInt *n,PetscDataType *type,PetscBool *istemp, int *ierr) 68a9acdec7SBarry Smith { 69a9acdec7SBarry Smith *ierr = PetscBinaryWrite(*fd,p,*n,*type,*istemp); 70a9acdec7SBarry Smith } 71a9acdec7SBarry Smith 72a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinarywritereal1_(int *fd,void*p,PetscInt *n,PetscDataType *type,PetscBool *istemp, int *ierr) 73a9acdec7SBarry Smith { 74a9acdec7SBarry Smith *ierr = PetscBinaryWrite(*fd,p,*n,*type,*istemp); 75a9acdec7SBarry Smith } 76a9acdec7SBarry Smith 77a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinarywritecomplex1_(int *fd,void*p,PetscInt *n,PetscDataType *type,PetscBool *istemp, int *ierr) 78a9acdec7SBarry Smith { 79a9acdec7SBarry Smith *ierr = PetscBinaryWrite(*fd,p,*n,*type,*istemp); 80a9acdec7SBarry Smith } 81a9acdec7SBarry Smith 82390e1bf2SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryopen_(char* name PETSC_MIXED_LEN(len),PetscFileMode *type,int *fd, 8355fcb7f5SSatish Balay PetscErrorCode *ierr PETSC_END_LEN(len)) 8455fcb7f5SSatish Balay { 8555fcb7f5SSatish Balay char *c1; 8655fcb7f5SSatish Balay 8755fcb7f5SSatish Balay FIXCHAR(name,len,c1); 88d49bb8f9SBarry Smith *ierr = PetscBinaryOpen(c1,*type,fd);if (*ierr) return; 8955fcb7f5SSatish Balay FREECHAR(name,c1); 9055fcb7f5SSatish Balay } 9155fcb7f5SSatish Balay 92a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadint_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 93a9acdec7SBarry Smith { 94a9acdec7SBarry Smith CHKFORTRANNULLINTEGER(count); 95a9acdec7SBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 96a9acdec7SBarry Smith } 97a9acdec7SBarry Smith 98a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadreal_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 99a9acdec7SBarry Smith { 100a9acdec7SBarry Smith CHKFORTRANNULLINTEGER(count); 101a9acdec7SBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 102a9acdec7SBarry Smith } 103a9acdec7SBarry Smith 104a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadcomplex_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 105a9acdec7SBarry Smith { 106a9acdec7SBarry Smith CHKFORTRANNULLINTEGER(count); 107a9acdec7SBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 108a9acdec7SBarry Smith } 109a9acdec7SBarry Smith 110a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadint1_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 111a9acdec7SBarry Smith { 112a9acdec7SBarry Smith CHKFORTRANNULLINTEGER(count); 113a9acdec7SBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 114a9acdec7SBarry Smith } 115a9acdec7SBarry Smith 116a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadreal1_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 117a9acdec7SBarry Smith { 118a9acdec7SBarry Smith CHKFORTRANNULLINTEGER(count); 119a9acdec7SBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 120a9acdec7SBarry Smith } 121a9acdec7SBarry Smith 122a9acdec7SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadcomplex1_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 1239860990eSLisandro Dalcin { 1249860990eSLisandro Dalcin CHKFORTRANNULLINTEGER(count); 1259860990eSLisandro Dalcin *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 1269860990eSLisandro Dalcin } 1279860990eSLisandro Dalcin 12818d1adefSBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadintcnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 12918d1adefSBarry Smith { 13018d1adefSBarry Smith CHKFORTRANNULLINTEGER(count); 13118d1adefSBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 13218d1adefSBarry Smith } 13318d1adefSBarry Smith 13418d1adefSBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadrealcnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 13518d1adefSBarry Smith { 13618d1adefSBarry Smith CHKFORTRANNULLINTEGER(count); 13718d1adefSBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 13818d1adefSBarry Smith } 13918d1adefSBarry Smith 14018d1adefSBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadcomplexcnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 14118d1adefSBarry Smith { 14218d1adefSBarry Smith CHKFORTRANNULLINTEGER(count); 14318d1adefSBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 14418d1adefSBarry Smith } 14518d1adefSBarry Smith 14618d1adefSBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadint1cnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 14718d1adefSBarry Smith { 14818d1adefSBarry Smith CHKFORTRANNULLINTEGER(count); 14918d1adefSBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 15018d1adefSBarry Smith } 15118d1adefSBarry Smith 15218d1adefSBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadreal1cnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 15318d1adefSBarry Smith { 15418d1adefSBarry Smith CHKFORTRANNULLINTEGER(count); 15518d1adefSBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 15618d1adefSBarry Smith } 15718d1adefSBarry Smith 15818d1adefSBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryreadcomplex1cnt_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr) 15918d1adefSBarry Smith { 16018d1adefSBarry Smith CHKFORTRANNULLINTEGER(count); 16118d1adefSBarry Smith *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return; 16218d1adefSBarry Smith } 16318d1adefSBarry Smith 164390e1bf2SBarry 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)) 165c1bccaadSBarry Smith { 166ca43db0aSBarry Smith char *c1; 167c1bccaadSBarry Smith 168c1bccaadSBarry Smith FIXCHAR(name,len,c1); 169d49bb8f9SBarry Smith *ierr = PetscTestFile(c1,*mode,flg);if (*ierr) return; 170c1bccaadSBarry Smith FREECHAR(name,c1); 171c1bccaadSBarry Smith } 17218d1adefSBarry Smith 17318d1adefSBarry Smith #if defined(__cplusplus) 17418d1adefSBarry Smith } 17518d1adefSBarry Smith #endif 176