1c4762a1bSJed Brown! 2c4762a1bSJed Brown! Program to test PetscSubcomm. 3c4762a1bSJed Brown! 4c4762a1bSJed Brown program main 5c4762a1bSJed Brown 6c4762a1bSJed Brown#include <petsc/finclude/petscsys.h> 7c4762a1bSJed Brown use petscsys 8c4762a1bSJed Brown implicit none 9c4762a1bSJed Brown 10c4762a1bSJed Brown PetscErrorCode ierr 11c4762a1bSJed Brown PetscSubcomm r 12c4762a1bSJed Brown PetscMPIInt rank,size 13c4762a1bSJed Brown MPI_Comm scomm 14c4762a1bSJed Brown 15*f8402805SBarry Smith PetscCallA(PetscInitialize(ierr)) 16*f8402805SBarry Smith PetscCallMPIA(MPI_Comm_size(PETSC_COMM_WORLD,size,ierr)) 17c4762a1bSJed Brown! if (size .ne. 2) SETERRA(PETSC_COMM_WORLD,PETSC_ERR_ARG_SIZ,'Two ranks only') 18*f8402805SBarry Smith PetscCallMPIA(MPI_Comm_rank(PETSC_COMM_WORLD,rank,ierr)) 19*f8402805SBarry Smith PetscCallA(PetscSubcommCreate(PETSC_COMM_WORLD,r,ierr)) 20*f8402805SBarry Smith PetscCallA(PetscSubcommSetFromOptions(r,ierr)) 21*f8402805SBarry Smith PetscCallA(PetscSubcommSetTypeGeneral(r,rank,rank,ierr)) 22c4762a1bSJed Brown 23*f8402805SBarry Smith PetscCallA(PetscSubcommGetChild(r,scomm,ierr)) 24*f8402805SBarry Smith PetscCallA(PetscSubcommView(r,PETSC_VIEWER_STDOUT_WORLD,ierr)) 25*f8402805SBarry Smith PetscCallA(PetscSubcommDestroy(r,ierr)) 26*f8402805SBarry Smith PetscCallA(PetscFinalize(ierr)) 27c4762a1bSJed Brown end 28c4762a1bSJed Brown 29c4762a1bSJed Brown! 30c4762a1bSJed Brown!/*TEST 31c4762a1bSJed Brown! 32c4762a1bSJed Brown! test: 33c4762a1bSJed Brown! nsize: 2 34c4762a1bSJed Brown! 35c4762a1bSJed Brown!TEST*/ 36