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 11296ae53dSBarry Smith #define petscbinaryreadintcnt_ PETSCBINARYREADINTCNT 1218d1adefSBarry Smith #define petscbinaryreadint1_ PETSCBINARYREADINT1 13296ae53dSBarry Smith #define petscbinaryreadreal1_ PETSCBINARYREADREAL1 1418d1adefSBarry Smith #define petscbinaryreadcomplex1_ PETSCBINARYREADCOMPLEX1 15296ae53dSBarry Smith #define petscbinaryreadint1cnt_ PETSCBINARYREADINT1CNT 16296ae53dSBarry Smith #define petscbinaryreadreal1cnt_ PETSCBINARYREADREAL1CNT 17296ae53dSBarry 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 30296ae53dSBarry Smith #define petscbinaryreadintcnt_ petscbinaryreadintcnt 3118d1adefSBarry Smith #define petscbinaryreadrealcnt_ petscbinaryreadrealcnt 3218d1adefSBarry Smith #define petscbinaryreadcomplexcnt_ petscbinaryreadcomplexcnt 3318d1adefSBarry Smith #define petscbinaryreadint1_ petscbinaryreadint1 34296ae53dSBarry Smith #define petscbinaryreadrea11_ petscbinaryreadrea11 3518d1adefSBarry Smith #define petscbinaryreadcomplex1_ petscbinaryreadcomplex1 36296ae53dSBarry Smith #define petscbinaryreadint1cnt_ petscbinaryreadint1cnt 37296ae53dSBarry Smith #define petscbinaryreadreal1cnt_ petscbinaryreadreal1cnt 38296ae53dSBarry 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 52*f253e43cSLisandro Dalcin PETSC_EXTERN void petscbinarywriteint_(int *fd,void*p,PetscInt *n,PetscDataType *type, int *ierr) 53a9acdec7SBarry Smith { 54*f253e43cSLisandro Dalcin *ierr = PetscBinaryWrite(*fd,p,*n,*type); 55a9acdec7SBarry Smith } 56a9acdec7SBarry Smith 57*f253e43cSLisandro Dalcin PETSC_EXTERN void petscbinarywritereal_(int *fd,void*p,PetscInt *n,PetscDataType *type, int *ierr) 58a9acdec7SBarry Smith { 59*f253e43cSLisandro Dalcin *ierr = PetscBinaryWrite(*fd,p,*n,*type); 60a9acdec7SBarry Smith } 61a9acdec7SBarry Smith 62*f253e43cSLisandro Dalcin PETSC_EXTERN void petscbinarywritecomplex_(int *fd,void*p,PetscInt *n,PetscDataType *type, int *ierr) 63a9acdec7SBarry Smith { 64*f253e43cSLisandro Dalcin *ierr = PetscBinaryWrite(*fd,p,*n,*type); 65a9acdec7SBarry Smith } 66a9acdec7SBarry Smith 67*f253e43cSLisandro Dalcin PETSC_EXTERN void petscbinarywriteint1_(int *fd,void*p,PetscInt *n,PetscDataType *type, int *ierr) 68a9acdec7SBarry Smith { 69*f253e43cSLisandro Dalcin *ierr = PetscBinaryWrite(*fd,p,*n,*type); 70a9acdec7SBarry Smith } 71a9acdec7SBarry Smith 72*f253e43cSLisandro Dalcin PETSC_EXTERN void petscbinarywritereal1_(int *fd,void*p,PetscInt *n,PetscDataType *type, int *ierr) 73a9acdec7SBarry Smith { 74*f253e43cSLisandro Dalcin *ierr = PetscBinaryWrite(*fd,p,*n,*type); 75a9acdec7SBarry Smith } 76a9acdec7SBarry Smith 77*f253e43cSLisandro Dalcin PETSC_EXTERN void petscbinarywritecomplex1_(int *fd,void*p,PetscInt *n,PetscDataType *type, int *ierr) 78a9acdec7SBarry Smith { 79*f253e43cSLisandro Dalcin *ierr = PetscBinaryWrite(*fd,p,*n,*type); 80a9acdec7SBarry Smith } 81a9acdec7SBarry Smith 8219caf8f3SSatish Balay PETSC_EXTERN void petscbinaryopen_(char* name,PetscFileMode *type,int *fd, 8319caf8f3SSatish Balay PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T 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 9219caf8f3SSatish Balay PETSC_EXTERN void 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 9819caf8f3SSatish Balay PETSC_EXTERN void 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 10419caf8f3SSatish Balay PETSC_EXTERN void 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 11019caf8f3SSatish Balay PETSC_EXTERN void 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 11619caf8f3SSatish Balay PETSC_EXTERN void 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 12219caf8f3SSatish Balay PETSC_EXTERN void 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 12819caf8f3SSatish Balay PETSC_EXTERN void 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 13419caf8f3SSatish Balay PETSC_EXTERN void 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 14019caf8f3SSatish Balay PETSC_EXTERN void 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 14619caf8f3SSatish Balay PETSC_EXTERN void 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 15219caf8f3SSatish Balay PETSC_EXTERN void 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 15819caf8f3SSatish Balay PETSC_EXTERN void 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 16419caf8f3SSatish Balay PETSC_EXTERN void petsctestfile_(char* name,char* mode,PetscBool *flg,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len,PETSC_FORTRAN_CHARLEN_T 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