Actual source code: zpreconf.c

  1: #include <petsc/private/fortranimpl.h>
  2: #include <petscpc.h>
  3: #include <petscviewer.h>

  5: #if defined(PETSC_HAVE_FORTRAN_CAPS)
  6:   #define pcview_                PCVIEW
  7:   #define pcgetoperators_        PCGETOPERATORS
  8:   #define pcsetoptionsprefix_    PCSETOPTIONSPREFIX
  9:   #define pcappendoptionsprefix_ PCAPPENDOPTIONSPREFIX
 10:   #define pcgetoptionsprefix_    PCGETOPTIONSPREFIX
 11:   #define pcviewfromoptions_     PCVIEWFROMOPTIONS
 12:   #define pcdestroy_             PCDESTROY
 13: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
 14:   #define pcview_                pcview
 15:   #define pcgetoperators_        pcgetoperators
 16:   #define pcsetoptionsprefix_    pcsetoptionsprefix
 17:   #define pcappendoptionsprefix_ pcappendoptionsprefix
 18:   #define pcgetoptionsprefix_    pcgetoptionsprefix
 19:   #define pcviewfromoptions_     pcviewfromoptions
 20:   #define pcdestroy_             pcdestroy
 21: #endif

 23: PETSC_EXTERN void pcview_(PC *pc, PetscViewer *viewer, PetscErrorCode *ierr)
 24: {
 25:   PetscViewer v;
 26:   PetscPatchDefaultViewers_Fortran(viewer, v);
 27:   *ierr = PCView(*pc, v);
 28: }

 30: PETSC_EXTERN void pcsetoptionsprefix_(PC *pc, char *prefix, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
 31: {
 32:   char *t;

 34:   FIXCHAR(prefix, len, t);
 35:   *ierr = PCSetOptionsPrefix(*pc, t);
 36:   if (*ierr) return;
 37:   FREECHAR(prefix, t);
 38: }

 40: PETSC_EXTERN void pcappendoptionsprefix_(PC *pc, char *prefix, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
 41: {
 42:   char *t;

 44:   FIXCHAR(prefix, len, t);
 45:   *ierr = PCAppendOptionsPrefix(*pc, t);
 46:   if (*ierr) return;
 47:   FREECHAR(prefix, t);
 48: }

 50: PETSC_EXTERN void pcgetoptionsprefix_(PC *pc, char *prefix, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
 51: {
 52:   const char *tname;

 54:   *ierr = PCGetOptionsPrefix(*pc, &tname);
 55:   *ierr = PetscStrncpy(prefix, tname, len);
 56:   if (*ierr) return;
 57:   FIXRETURNCHAR(PETSC_TRUE, prefix, len);
 58: }

 60: PETSC_EXTERN void pcviewfromoptions_(PC *ao, PetscObject obj, char *type, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
 61: {
 62:   char *t;

 64:   FIXCHAR(type, len, t);
 65:   CHKFORTRANNULLOBJECT(obj);
 66:   *ierr = PCViewFromOptions(*ao, obj, t);
 67:   if (*ierr) return;
 68:   FREECHAR(type, t);
 69: }

 71: PETSC_EXTERN void pcdestroy_(PC *x, int *ierr)
 72: {
 73:   PETSC_FORTRAN_OBJECT_F_DESTROYED_TO_C_NULL(x);
 74:   *ierr = PCDestroy(x);
 75:   if (*ierr) return;
 76:   PETSC_FORTRAN_OBJECT_C_NULL_TO_F_DESTROYED(x);
 77: }