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