Actual source code: zrandomf.c

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

  4: #if defined(PETSC_HAVE_FORTRAN_CAPS)
  5:   #define petscrandomsettype_         PETSCRANDOMSETTYPE
  6:   #define petscrandomgettype_         PETSCRANDOMGETTYPE
  7:   #define petscrandomsetseed_         PETSCRANDOMSETSEED
  8:   #define petscrandomgetseed_         PETSCRANDOMGETSEED
  9:   #define petscrandomviewfromoptions_ PETSCRANDOMVIEWFROMOPTIONS
 10:   #define petscrandomdestroy_         PETSCRANDOMDESTROY
 11: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
 12:   #define petscrandomsettype_         petscrandomsettype
 13:   #define petscrandomgettype_         petscrandomgettype
 14:   #define petscrandomsetseed_         petscrandomsetseed
 15:   #define petscrandomgetseed_         petscrandomgetseed
 16:   #define petscrandomviewfromoptions_ petscrandomviewfromoptions
 17:   #define petscrandomdestroy_         petscrandomdestroy
 18: #endif

 20: PETSC_EXTERN void petscrandomgetseed_(PetscRandom *r, unsigned long *seed, PetscErrorCode *ierr)
 21: {
 22:   *ierr = PetscRandomGetSeed(*r, seed);
 23: }
 24: PETSC_EXTERN void petscrandomsetseed_(PetscRandom *r, unsigned long *seed, PetscErrorCode *ierr)
 25: {
 26:   *ierr = PetscRandomSetSeed(*r, *seed);
 27: }

 29: PETSC_EXTERN void petscrandomsettype_(PetscRandom *rnd, char *type, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
 30: {
 31:   char *t;

 33:   FIXCHAR(type, len, t);
 34:   *ierr = PetscRandomSetType(*rnd, t);
 35:   if (*ierr) return;
 36:   FREECHAR(type, t);
 37: }

 39: PETSC_EXTERN void petscrandomgettype_(PetscRandom *petscrandom, char *name, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
 40: {
 41:   const char *tname;

 43:   *ierr = PetscRandomGetType(*petscrandom, &tname);
 44:   if (*ierr) return;
 45:   *ierr = PetscStrncpy(name, tname, len);
 46:   if (*ierr) return;
 47:   FIXRETURNCHAR(PETSC_TRUE, name, len);
 48: }
 49: PETSC_EXTERN void petscrandomviewfromoptions_(PetscRandom *ao, PetscObject obj, char *type, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
 50: {
 51:   char *t;

 53:   FIXCHAR(type, len, t);
 54:   CHKFORTRANNULLOBJECT(obj);
 55:   *ierr = PetscRandomViewFromOptions(*ao, obj, t);
 56:   if (*ierr) return;
 57:   FREECHAR(type, t);
 58: }

 60: PETSC_EXTERN void petscrandomdestroy_(PetscRandom *x, int *ierr)
 61: {
 62:   PETSC_FORTRAN_OBJECT_F_DESTROYED_TO_C_NULL(x);
 63:   *ierr = PetscRandomDestroy(x);
 64:   if (*ierr) return;
 65:   PETSC_FORTRAN_OBJECT_C_NULL_TO_F_DESTROYED(x);
 66: }