1c4762a1bSJed Brown! 2*337bb527SBarry Smith! Test the workaround for a bug in Open MPI 2.1.1 on Ubuntu 18.04.2 3c4762a1bSJed Brown! See https://lists.mcs.anl.gov/pipermail/petsc-dev/2019-July/024803.html 4c4762a1bSJed Brown! 5c4762a1bSJed Brown! Contributed-by: Fabian Jakub <Fabian.Jakub@physik.uni-muenchen.de> 6c4762a1bSJed Brownprogram main 7c4762a1bSJed Brown#include "petsc/finclude/petsc.h" 8c4762a1bSJed Brown 9c4762a1bSJed Brown use petsc 10c4762a1bSJed Brown implicit none 11c4762a1bSJed Brown 12c4762a1bSJed Brown PetscInt, parameter :: Ndof=1, stencil_size=1 13c4762a1bSJed Brown PetscInt, parameter :: Nx=3, Ny=3 14c4762a1bSJed Brown PetscErrorCode :: myid, commsize, ierr 15c4762a1bSJed Brown PetscScalar, pointer :: xv1d(:) 16c4762a1bSJed Brown 17c4762a1bSJed Brown type(tDM) :: da 18c4762a1bSJed Brown type(tVec) :: gVec!, naturalVec 19c4762a1bSJed Brown 20d8606c27SBarry Smith PetscCallA(PetscInitialize(PETSC_NULL_CHARACTER, ierr)) 21d8606c27SBarry Smith PetscCallA(mpi_comm_rank(PETSC_COMM_WORLD, myid, ierr)) 22d8606c27SBarry Smith PetscCallA(mpi_comm_size(PETSC_COMM_WORLD, commsize, ierr)) 23c4762a1bSJed Brown 24d8606c27SBarry Smith PetscCallA(DMDACreate2d(PETSC_COMM_WORLD,DM_BOUNDARY_PERIODIC, DM_BOUNDARY_PERIODIC,DMDA_STENCIL_STAR,Nx, Ny, PETSC_DECIDE, PETSC_DECIDE, Ndof, stencil_size,PETSC_NULL_INTEGER, PETSC_NULL_INTEGER, da, ierr)) 25d8606c27SBarry Smith PetscCallA(DMSetup(da, ierr)) 26d8606c27SBarry Smith PetscCallA(DMSetFromOptions(da, ierr)) 27c4762a1bSJed Brown 28d8606c27SBarry Smith PetscCallA(DMCreateGlobalVector(da, gVec, ierr)) 29d8606c27SBarry Smith PetscCallA(VecGetArrayF90(gVec, xv1d, ierr)) 30c4762a1bSJed Brown xv1d(:) = real(myid, kind(xv1d)) 31c4762a1bSJed Brown !print *,myid, 'xv1d', xv1d, ':', xv1d 32d8606c27SBarry Smith PetscCallA(VecRestoreArrayF90(gVec, xv1d, ierr)) 33c4762a1bSJed Brown 34dcb3e689SBarry Smith PetscCallA(PetscObjectViewFromOptions(gVec, PETSC_NULL_VEC, '-show_gVec', ierr)) 35c4762a1bSJed Brown 36d8606c27SBarry Smith PetscCallA(VecDestroy(gVec, ierr)) 37d8606c27SBarry Smith PetscCallA(DMDestroy(da, ierr)) 38d8606c27SBarry Smith PetscCallA(PetscFinalize(ierr)) 39c4762a1bSJed Brownend program 40c4762a1bSJed Brown 41c4762a1bSJed Brown!/*TEST 42c4762a1bSJed Brown! 43c4762a1bSJed Brown! test: 44c4762a1bSJed Brown! nsize: 9 45c4762a1bSJed Brown! args: -show_gVec 46c4762a1bSJed Brown!TEST*/ 47