1c4762a1bSJed Brown! 2c4762a1bSJed Brown! Program to test object composition from Fortran 3c4762a1bSJed Brown! 4c4762a1bSJed Brown#include <petsc/finclude/petscsys.h> 5*c5e229c2SMartin Diehlprogram main 6c4762a1bSJed Brown use petscsys 7c4762a1bSJed Brown implicit none 8c4762a1bSJed Brown 9c4762a1bSJed Brown PetscErrorCode ierr 101c5ac70dSBarry Smith PetscViewer o1, o2, o3 11ce78bad3SBarry Smith character*(4) name 1216110d5aSBarry Smith PetscCopyMode :: mode = PETSC_COPY_VALUES 13c4762a1bSJed Brown 14f8402805SBarry Smith PetscCallA(PetscInitialize(ierr)) 15ce78bad3SBarry Smith PetscCallA(PetscViewerASCIIOpen(PETSC_COMM_WORLD, "stdout", o1, ierr)) 16ce78bad3SBarry Smith PetscCallA(PetscViewerASCIIOpen(PETSC_COMM_WORLD, "stderr", o2, ierr)) 17c4762a1bSJed Brown name = 'matt' 18f8402805SBarry Smith PetscCallA(PetscObjectCompose(o1, name, o2, ierr)) 19f8402805SBarry Smith PetscCallA(PetscObjectQuery(o1, name, o3, ierr)) 204820e4eaSBarry Smith PetscCheckA(o2 == o3, PETSC_COMM_SELF, PETSC_ERR_PLIB, 'PetscObjectQuery failed') 21c4762a1bSJed Brown 224820e4eaSBarry Smith if (mode == PETSC_COPY_VALUES) then 23f8402805SBarry Smith PetscCallA(PetscViewerDestroy(o1, ierr)) 2416110d5aSBarry Smith end if 25f8402805SBarry Smith PetscCallA(PetscViewerDestroy(o2, ierr)) 26f8402805SBarry Smith PetscCallA(PetscFinalize(ierr)) 27c4762a1bSJed Brownend 28c4762a1bSJed Brown 29c4762a1bSJed Brown! 30c4762a1bSJed Brown!/*TEST 31c4762a1bSJed Brown! 32c4762a1bSJed Brown! test: 33c4762a1bSJed Brown! suffix: 0 343886731fSPierre Jolivet! output_file: output/empty.out 35c4762a1bSJed Brown! 36c4762a1bSJed Brown!TEST*/ 37