1c4762a1bSJed Brown! 2c4762a1bSJed Brown! Program to test PetscRandom, PetscObjectReference() and other PetscObjectXXX functions. 3c4762a1bSJed Brown! 4c4762a1bSJed Brownprogram main 5c4762a1bSJed Brown 6c4762a1bSJed Brown#include <petsc/finclude/petscsys.h> 7c4762a1bSJed Brown use petscsys 8c4762a1bSJed Brown implicit none 9c4762a1bSJed Brown 10c4762a1bSJed Brown PetscErrorCode ierr 11c4762a1bSJed Brown PetscRandom r, q, r2 12c4762a1bSJed Brown PetscScalar rand 13c4762a1bSJed Brown PetscInt ref 14c4762a1bSJed Brown 15f8402805SBarry Smith PetscCallA(PetscInitialize(ierr)) 16c4762a1bSJed Brown 17f8402805SBarry Smith PetscCallA(PetscRandomCreate(PETSC_COMM_WORLD, r, ierr)) 18f8402805SBarry Smith PetscCallA(PetscRandomCreate(PETSC_COMM_WORLD, r2, ierr)) 19f8402805SBarry Smith PetscCallA(PetscRandomSetFromOptions(r, ierr)) 20f8402805SBarry Smith PetscCallA(PetscRandomGetValue(r, rand, ierr)) 21c4762a1bSJed Brown print *, 'Random value:', rand 22c4762a1bSJed Brown 23f8402805SBarry Smith PetscCallA(PetscObjectReference(r, ierr)) 24f8402805SBarry Smith PetscCallA(PetscObjectGetReference(r, ref, ierr)) 25c4762a1bSJed Brown print *, 'Reference value:', ref 26f8402805SBarry Smith PetscCallA(PetscObjectDereference(r, ierr)) 27c4762a1bSJed Brown 28ccfd86f1SBarry Smith PetscCallA(PetscObjectCompose(r, 'test', r2, ierr)) 29ccfd86f1SBarry Smith PetscCallA(PetscObjectQuery(r, 'test', q, ierr)) 30*4820e4eaSBarry Smith PetscCheckA(q == r2, PETSC_COMM_SELF, PETSC_ERR_PLIB, 'Object compose/query failed') 31c4762a1bSJed Brown 32f8402805SBarry Smith PetscCallA(PetscRandomDestroy(r, ierr)) 33f8402805SBarry Smith PetscCallA(PetscRandomDestroy(r2, ierr)) 34f8402805SBarry Smith PetscCallA(PetscFinalize(ierr)) 35c4762a1bSJed Brownend 36c4762a1bSJed Brown 37c4762a1bSJed Brown! 38c4762a1bSJed Brown!/*TEST 39c4762a1bSJed Brown! 40ffeef943SBarry Smith! build: 41ffeef943SBarry Smith! requires: defined(PETSC_HAVE_FORTRAN_TYPE_STAR) 42ffeef943SBarry Smith! 43c4762a1bSJed Brown! test: 44c4762a1bSJed Brown! requires: !complex 45c4762a1bSJed Brown! 46c4762a1bSJed Brown!TEST*/ 47