Actual source code: ex13f.F

  1: !
  2: ! "$Id: ex13f.F,v 1.5 2000/01/11 20:59:47 bsmith Exp $";
  3: !
  4: !
  5: !     Tests PetscSetCommWorld()
  6: !
 7:  #include finclude/petsc.h

  9:       integer   ierr,rank,size,color
 10:       MPI_Comm  newcomm

 12:       call MPI_Init(ierr)
 13:       call MPI_Comm_rank(MPI_COMM_WORLD,rank,ierr)
 14:       call MPI_Comm_size(MPI_COMM_WORLD,size,ierr)

 16: !
 17: !       make two new communicators each half the size of original
 18: !
 19:       if (2*rank .lt. size) then
 20:         color = 0
 21:       else
 22:         color = 1
 23:       endif
 24:       call MPI_Comm_split(MPI_COMM_WORLD,color,0,newcomm,ierr)

 26:       call PetscSetCommWorld(newcomm,ierr)

 28:       call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
 29:       call MPI_Comm_rank(PETSC_COMM_WORLD,rank,ierr)
 30:       write(6,100) rank
 31:   100 format('rank = ',i3)

 33:       call PetscFinalize(ierr)
 34:       call MPI_Finalize(ierr)
 35:       end