Actual source code: ex16f.F90

  1: ! Tests calling PetscOptionsSetValue() before PetscInitialize(): Fortran Example
  2: #include <petsc/finclude/petscsys.h>
  3: program main
  4:   use petscmpi  ! or mpi or mpi_f08
  5:   use petscsys

  7:   implicit none
  8:   PetscErrorCode :: ierr
  9:   PetscMPIInt  ::  rank, size
 10:   character(len=80) :: outputString

 12:   ! Every PETSc routine should begin with the PetscInitialize() routine.

 14:   PetscCallA(PetscOptionsSetValue(PETSC_NULL_OPTIONS, '-no_signal_handler', 'true', ierr))
 15:   PetscCallA(PetscInitialize(ierr))

 17:   ! We can now change the communicator universe for PETSc

 19:   PetscCallMPIA(MPI_Comm_size(MPI_COMM_WORLD, size, ierr))
 20:   PetscCallMPIA(MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr))
 21:   write (outputString, *) 'Number of processors =', size, 'rank =', rank, '\n'
 22:   PetscCallA(PetscPrintf(PETSC_COMM_WORLD, outputString, ierr))
 23:   PetscCallA(PetscFinalize(ierr))
 24: end program main

 26: !/*TEST
 27: !
 28: !   test:
 29: !      requires: defined(PETSC_USE_LOG)
 30: !      nsize: 2
 31: !      args: -options_view -get_total_flops
 32: !      filter: grep -E -v "(Total flops)"
 33: !
 34: !TEST*/