Actual source code: ex60f90.F90

  1: #include <petsc/finclude/petscsys.h>
  2: program ex60F90
  3:   use petsc
  4:   implicit none

  6:   PetscBool                        :: flg
  7:   character(len=256)               :: outputString
  8:   PetscScalar, dimension(:), pointer :: sopt
  9:   PetscBool, dimension(:), pointer   :: bopt
 10:   PetscInt                         :: nopt
 11:   PetscErrorCode                   :: ierr

 13:   PetscCallA(PetscInitialize(ierr))
 14:   nopt = 3
 15:   allocate (bopt(nopt))
 16:   PetscCallA(PetscOptionsGetBoolArray(PETSC_NULL_OPTIONS, PETSC_NULL_CHARACTER, '-bopt', bopt, nopt, flg, ierr))
 17:   write (outputString, '("bopt: ",3(l7,"  ")," nopt: ",i3," flg ",l7,"\n")') bopt, nopt, flg
 18:   PetscCallA(PetscPrintf(PETSC_COMM_WORLD, outputString, ierr))

 20:   nopt = 3
 21:   allocate (sopt(nopt))
 22:   PetscCallA(PetscOptionsGetScalarArray(PETSC_NULL_OPTIONS, PETSC_NULL_CHARACTER, '-sopt', sopt, nopt, flg, ierr))
 23:   write (outputString, '("sopt: ",3(es12.5,"  ")," nopt: ",i3," flg ",l7,"\n")') sopt, nopt, flg
 24:   PetscCallA(PetscPrintf(PETSC_COMM_WORLD, outputString, ierr))

 26:   deallocate (bopt)
 27:   deallocate (sopt)
 28:   PetscCallA(PetscFinalize(ierr))
 29: end program ex60F90

 31: !/*TEST
 32: !
 33: !   test:
 34: !      requires: !complex
 35: !      suffix: 0
 36: !      args: -bopt yes,true,0 -sopt -1,2,3,4
 37: !
 38: !TEST*/