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