#include #include #if defined(PETSC_HAVE_FORTRAN_CAPS) #define petscmatlabenginecreate_ PETSCMATLABENGINECREATE #define petscmatlabengineevaluate_ PETSCMATLABENGINEEVALUATE #define petscmatlabenginegetoutput_ PETSCMATLABENGINEGETOUTPUT #define petscmatlabengineprintoutput_ PETSCMATLABENGINEPRINTOUTPUT #define petscmatlabengineputarray_ PETSCMATLABENGINEPUTARRAY #define petscmatlabenginegetarray_ PETSCMATLABENGINEGETARRAY #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) #define petscmatlabenginecreate_ petscmatlabenginecreate #define petscmatlabengineevaluate_ petscmatlabengineevaluate #define petscmatlabenginegetoutput_ petscmatlabenginegetoutput #define petscmatlabengineprintoutput_ petscmatlabengineprintoutput #define petscmatlabengineputarray_ petscmatlabengineputarray #define petscmatlabenginegetarray_ petscmatlabenginegetarray #endif PETSC_EXTERN void petscmatlabenginecreate_(MPI_Comm *comm,char* m,PetscMatlabEngine *e, PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) { char *ms; FIXCHAR(m,len,ms); *ierr = PetscMatlabEngineCreate(MPI_Comm_f2c(*(MPI_Fint*)&*comm),ms,e);if (*ierr) return; FREECHAR(m,ms); } PETSC_EXTERN void petscmatlabengineevaluate_(PetscMatlabEngine *e,char* m, PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) { char *ms; FIXCHAR(m,len,ms); *ierr = PetscMatlabEngineEvaluate(*e,ms);if (*ierr) return; FREECHAR(m,ms); } PETSC_EXTERN void petscmatlabengineputarray_(PetscMatlabEngine *e,PetscInt *m,PetscInt *n,PetscScalar *a, char* s,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) { char *ms; FIXCHAR(s,len,ms); *ierr = PetscMatlabEnginePutArray(*e,*m,*n,a,ms);if (*ierr) return; FREECHAR(s,ms); } PETSC_EXTERN void petscmatlabenginegetarray_(PetscMatlabEngine *e,PetscInt *m,PetscInt *n,PetscScalar *a, char* s,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) { char *ms; FIXCHAR(s,len,ms); *ierr = PetscMatlabEngineGetArray(*e,*m,*n,a,ms);if (*ierr) return; FREECHAR(s,ms); }