xref: /petsc/src/sys/tutorials/ex16f.F90 (revision c5e229c2f66f66995aed5443a26600af2aec4a3f)
1c4762a1bSJed Brown! Tests calling PetscOptionsSetValue() before PetscInitialize(): Fortran Example
2c4762a1bSJed Brown#include <petsc/finclude/petscsys.h>
3*c5e229c2SMartin Diehlprogram main
48c8af28eSPedro Ricardo C. Souza  use petscmpi  ! or mpi or mpi_f08
5c4762a1bSJed Brown  use petscsys
6c4762a1bSJed Brown
7c4762a1bSJed Brown  implicit none
8c4762a1bSJed Brown  PetscErrorCode :: ierr
9f8402805SBarry Smith  PetscMPIInt  ::  rank, size
10c4762a1bSJed Brown  character(len=80) :: outputString
11c4762a1bSJed Brown
12c4762a1bSJed Brown  ! Every PETSc routine should begin with the PetscInitialize() routine.
13c4762a1bSJed Brown
14dcb3e689SBarry Smith  PetscCallA(PetscOptionsSetValue(PETSC_NULL_OPTIONS, '-no_signal_handler', 'true', ierr))
15f8402805SBarry Smith  PetscCallA(PetscInitialize(ierr))
16c4762a1bSJed Brown
17c4762a1bSJed Brown  ! We can now change the communicator universe for PETSc
18c4762a1bSJed Brown
19f8402805SBarry Smith  PetscCallMPIA(MPI_Comm_size(MPI_COMM_WORLD, size, ierr))
20f8402805SBarry Smith  PetscCallMPIA(MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr))
21f8402805SBarry Smith  write (outputString, *) 'Number of processors =', size, 'rank =', rank, '\n'
22f8402805SBarry Smith  PetscCallA(PetscPrintf(PETSC_COMM_WORLD, outputString, ierr))
23f8402805SBarry Smith  PetscCallA(PetscFinalize(ierr))
24c4762a1bSJed Brownend program main
25c4762a1bSJed Brown
26c4762a1bSJed Brown!/*TEST
27c4762a1bSJed Brown!
28c4762a1bSJed Brown!   test:
29dfd57a17SPierre Jolivet!      requires: defined(PETSC_USE_LOG)
30c4762a1bSJed Brown!      nsize: 2
31c4762a1bSJed Brown!      args: -options_view -get_total_flops
32e9a33e21SBarry Smith!      filter: grep -E -v "(Total flops)"
33c4762a1bSJed Brown!
34c4762a1bSJed Brown!TEST*/
35