Actual source code: zswarm.c

  1: #include <petsc/private/fortranimpl.h>
  2: #include <petscdmswarm.h>

  4: #if defined(PETSC_HAVE_FORTRAN_CAPS)
  5:   #define dmswarmcreateglobalvectorfromfield_  DMSWARMCREATEGLOBALVECTORFROMFIELD
  6:   #define dmswarmdestroyglobalvectorfromfield_ DMSWARMDESTROYGLOBALVECTORFROMFIELD
  7:   #define dmswarmregisterpetscdatatypefield_   DMSWARMREGISTERPETSCDATATYPEFIELD
  8: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
  9:   #define dmswarmcreateglobalvectorfromfield_  dmswarmcreateglobalvectorfromfield
 10:   #define dmswarmdestroyglobalvectorfromfield_ dmswarmdestroyglobalvectorfromfield
 11:   #define dmswarmregisterpetscdatatypefield_   dmswarmregisterpetscdatatypefield
 12: #endif

 14: /* Definitions of Fortran Wrapper routines */

 16: PETSC_EXTERN void dmswarmcreateglobalvectorfromfield_(DM *dm, char *name, Vec *vec, int *ierr, PETSC_FORTRAN_CHARLEN_T lenN)
 17: {
 18:   char *fieldname;

 20:   FIXCHAR(name, lenN, fieldname);
 21:   *ierr = DMSwarmCreateGlobalVectorFromField(*dm, fieldname, vec);
 22:   FREECHAR(name, fieldname);
 23: }

 25: PETSC_EXTERN void dmswarmdestroyglobalvectorfromfield_(DM *dm, char *name, Vec *vec, int *ierr, PETSC_FORTRAN_CHARLEN_T lenN)
 26: {
 27:   char *fieldname;

 29:   FIXCHAR(name, lenN, fieldname);
 30:   *ierr = DMSwarmDestroyGlobalVectorFromField(*dm, fieldname, vec);
 31:   FREECHAR(name, fieldname);
 32: }

 34: PETSC_EXTERN void dmswarmregisterpetscdatatypefield_(DM *dm, char *name, PetscInt *blocksize, PetscDataType *type, int *ierr, PETSC_FORTRAN_CHARLEN_T lenN)
 35: {
 36:   char *fieldname;

 38:   FIXCHAR(name, lenN, fieldname);
 39:   *ierr = DMSwarmRegisterPetscDatatypeField(*dm, fieldname, *blocksize, *type);
 40:   FREECHAR(name, fieldname);
 41: }