Actual source code: zf90mat.c
2: #include "petscmat.h"
3: #include "petscf90.h"
5: #ifdef PETSC_HAVE_FORTRAN_CAPS
6: #define matgetarrayf90_ MATGETARRAYF90
7: #define matrestorearrayf90_ MATRESTOREARRAYF90
8: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
9: #define matgetarrayf90_ matgetarrayf90
10: #define matrestorearrayf90_ matrestorearrayf90
11: #endif
14: void PETSC_STDCALL matgetarrayf90_(Mat *mat,F90Array2d *ptr,int *ierr)
15: {
16: PetscScalar *fa;
17: int m,n;
18: *MatGetArray(*mat,&fa); if (*ierr) return;
19: *MatGetLocalSize(*mat,&m,&n); if (*ierr) return;
20: *F90Array2dCreate(fa,PETSC_SCALAR,1,m,1,n,ptr);
21: }
22: void PETSC_STDCALL matrestorearrayf90_(Mat *mat,F90Array2d *ptr,int *ierr)
23: {
24: PetscScalar *fa;
25: *F90Array2dAccess(ptr,(void **)&fa);if (*ierr) return;
26: *F90Array2dDestroy(ptr);if (*ierr) return;
27: *MatRestoreArray(*mat,&fa);
28: }