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