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: }