Actual source code: ex16f.F90

  1: ! Tests calling PetscOptionsSetValue() before PetscInitialize(): Fortran Example

  3: program main
  4: #include <petsc/finclude/petscsys.h>
  5:       use petscmpi  ! or mpi or mpi_f08
  6:       use petscsys

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

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

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

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

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

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