1*c4762a1bSJed Brown! 2*c4762a1bSJed Brown! Program to test object composition from Fortran 3*c4762a1bSJed Brown! 4*c4762a1bSJed Brown program main 5*c4762a1bSJed Brown 6*c4762a1bSJed Brown#include <petsc/finclude/petscsys.h> 7*c4762a1bSJed Brown#include <petsc/finclude/petscviewer.h> 8*c4762a1bSJed Brown use petscsys 9*c4762a1bSJed Brown implicit none 10*c4762a1bSJed Brown 11*c4762a1bSJed Brown PetscErrorCode ierr 12*c4762a1bSJed Brown PetscObject o1, o2, o3 13*c4762a1bSJed Brown character*(80) name 14*c4762a1bSJed Brown 15*c4762a1bSJed Brown call PetscInitialize(PETSC_NULL_CHARACTER,ierr) 16*c4762a1bSJed Brown if (ierr .ne. 0) then 17*c4762a1bSJed Brown print*, 'Unable to begin PETSc program' 18*c4762a1bSJed Brown stop 19*c4762a1bSJed Brown endif 20*c4762a1bSJed Brown 21*c4762a1bSJed Brown call PetscViewerCreate(PETSC_COMM_WORLD,o1,ierr);CHKERRA(ierr) 22*c4762a1bSJed Brown call PetscViewerCreate(PETSC_COMM_WORLD,o2,ierr);CHKERRA(ierr) 23*c4762a1bSJed Brown name = 'matt' 24*c4762a1bSJed Brown call PetscObjectCompose(o1,name,o2,ierr);CHKERRA(ierr) 25*c4762a1bSJed Brown call PetscObjectQuery(o1,name,o3,ierr);CHKERRA(ierr) 26*c4762a1bSJed Brown if (o2 .ne. o3) then; SETERRA(PETSC_COMM_SELF,PETSC_ERR_PLIB,'PetscObjectQuery failed'); endif 27*c4762a1bSJed Brown 28*c4762a1bSJed Brown call PetscViewerDestroy(o1,ierr);CHKERRA(ierr) 29*c4762a1bSJed Brown call PetscViewerDestroy(o2,ierr);CHKERRA(ierr) 30*c4762a1bSJed Brown call PetscFinalize(ierr) 31*c4762a1bSJed Brown end 32*c4762a1bSJed Brown 33*c4762a1bSJed Brown! 34*c4762a1bSJed Brown!/*TEST 35*c4762a1bSJed Brown! 36*c4762a1bSJed Brown! test: 37*c4762a1bSJed Brown! suffix: 0 38*c4762a1bSJed Brown! 39*c4762a1bSJed Brown!TEST*/ 40