xref: /petsc/src/sys/tests/ex36f.F90 (revision c4762a1b19cd2af06abeed90e8f9d34fb975dd94)
1!
2!  Program to test PetscRandom, PetscObjectReference() and other PetscObjectXXX functions.
3!
4      program main
5
6#include <petsc/finclude/petscsys.h>
7       use petscsys
8       implicit none
9
10      PetscErrorCode  ierr
11      PetscRandom     r,q,r2
12      PetscScalar     rand
13      PetscInt        ref
14
15      call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
16      if (ierr .ne. 0) then
17         print*, 'Unable to begin PETSc program'
18      endif
19
20      call PetscRandomCreate(PETSC_COMM_WORLD,r,ierr)
21      call PetscRandomCreate(PETSC_COMM_WORLD,r2,ierr)
22      call PetscRandomSetFromOptions(r,ierr)
23      call PetscRandomGetValue(r,rand,ierr)
24      print*, 'Random value:',rand
25
26      call PetscObjectReference(r,ierr)
27      call PetscObjectGetReference(r,ref,ierr)
28      print*, 'Reference value:',ref
29      call PetscObjectDereference(r,ierr)
30
31      call PetscObjectCompose(r,'test',r2,ierr);
32      call PetscObjectQuery(r,'test',q,ierr);
33      if (q .ne. r2) then; SETERRA(PETSC_COMM_SELF,PETSC_ERR_PLIB,'Object compose/query failed'); endif
34
35      call PetscRandomDestroy(r,ierr)
36      call PetscRandomDestroy(r2,ierr)
37      call PetscFinalize(ierr)
38      end
39
40!
41!/*TEST
42!
43!   test:
44!      requires: !complex
45!
46!TEST*/
47