1c4762a1bSJed Brown! 2c4762a1bSJed Brown! Program to test object composition from Fortran 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 111c5ac70dSBarry Smith PetscViewer o1, o2, o3 12ce78bad3SBarry Smith character*(4) name 1316110d5aSBarry Smith PetscCopyMode :: mode = PETSC_COPY_VALUES 14c4762a1bSJed Brown 15f8402805SBarry Smith PetscCallA(PetscInitialize(ierr)) 16ce78bad3SBarry Smith PetscCallA(PetscViewerASCIIOpen(PETSC_COMM_WORLD, "stdout", o1, ierr)) 17ce78bad3SBarry Smith PetscCallA(PetscViewerASCIIOpen(PETSC_COMM_WORLD, "stderr", o2, ierr)) 18c4762a1bSJed Brown name = 'matt' 19f8402805SBarry Smith PetscCallA(PetscObjectCompose(o1, name, o2, ierr)) 20f8402805SBarry Smith PetscCallA(PetscObjectQuery(o1, name, o3, ierr)) 21*4820e4eaSBarry Smith PetscCheckA(o2 == o3, PETSC_COMM_SELF, PETSC_ERR_PLIB, 'PetscObjectQuery failed') 22c4762a1bSJed Brown 23*4820e4eaSBarry Smith if (mode == PETSC_COPY_VALUES) then 24f8402805SBarry Smith PetscCallA(PetscViewerDestroy(o1, ierr)) 2516110d5aSBarry Smith end if 26f8402805SBarry Smith PetscCallA(PetscViewerDestroy(o2, ierr)) 27f8402805SBarry Smith PetscCallA(PetscFinalize(ierr)) 28c4762a1bSJed Brownend 29c4762a1bSJed Brown 30c4762a1bSJed Brown! 31c4762a1bSJed Brown!/*TEST 32c4762a1bSJed Brown! 33ffeef943SBarry Smith! build: 34ffeef943SBarry Smith! requires: defined(PETSC_HAVE_FORTRAN_TYPE_STAR) 35ffeef943SBarry Smith! 36c4762a1bSJed Brown! test: 37c4762a1bSJed Brown! suffix: 0 383886731fSPierre Jolivet! output_file: output/empty.out 39c4762a1bSJed Brown! 40c4762a1bSJed Brown!TEST*/ 41