xref: /petsc/src/sys/tests/ex13f.F90 (revision f14a7c29b82d1117d8e3de344377442be395a55f)
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