1b0c0aa2bSBlaise Bourdin#include <petsc/finclude/petscsys.h> 2c5e229c2SMartin Diehlprogram ex60F90 3b0c0aa2bSBlaise Bourdin use petsc 4b0c0aa2bSBlaise Bourdin implicit none 5b0c0aa2bSBlaise Bourdin 6b0c0aa2bSBlaise Bourdin PetscBool :: flg 7*02c639afSMartin Diehl character(len=256) :: outputString 8b0c0aa2bSBlaise Bourdin PetscScalar, dimension(:), pointer :: sopt 9b0c0aa2bSBlaise Bourdin PetscBool, dimension(:), pointer :: bopt 10b0c0aa2bSBlaise Bourdin PetscInt :: nopt 11b0c0aa2bSBlaise Bourdin PetscErrorCode :: ierr 12b0c0aa2bSBlaise Bourdin 13b0c0aa2bSBlaise Bourdin PetscCallA(PetscInitialize(ierr)) 14b0c0aa2bSBlaise Bourdin nopt = 3 15b0c0aa2bSBlaise Bourdin allocate (bopt(nopt)) 16dcb3e689SBarry Smith PetscCallA(PetscOptionsGetBoolArray(PETSC_NULL_OPTIONS, PETSC_NULL_CHARACTER, '-bopt', bopt, nopt, flg, ierr)) 17*02c639afSMartin Diehl write (outputString, '("bopt: ",3(l7," ")," nopt: ",i3," flg ",l7,"\n")') bopt, nopt, flg 18b0c0aa2bSBlaise Bourdin PetscCallA(PetscPrintf(PETSC_COMM_WORLD, outputString, ierr)) 19b0c0aa2bSBlaise Bourdin 20b0c0aa2bSBlaise Bourdin nopt = 3 21b0c0aa2bSBlaise Bourdin allocate (sopt(nopt)) 22dcb3e689SBarry Smith PetscCallA(PetscOptionsGetScalarArray(PETSC_NULL_OPTIONS, PETSC_NULL_CHARACTER, '-sopt', sopt, nopt, flg, ierr)) 23*02c639afSMartin Diehl write (outputString, '("sopt: ",3(es12.5," ")," nopt: ",i3," flg ",l7,"\n")') sopt, nopt, flg 24b0c0aa2bSBlaise Bourdin PetscCallA(PetscPrintf(PETSC_COMM_WORLD, outputString, ierr)) 25b0c0aa2bSBlaise Bourdin 26b0c0aa2bSBlaise Bourdin deallocate (bopt) 27b0c0aa2bSBlaise Bourdin deallocate (sopt) 28b0c0aa2bSBlaise Bourdin PetscCallA(PetscFinalize(ierr)) 29b0c0aa2bSBlaise Bourdinend program ex60F90 30b0c0aa2bSBlaise Bourdin 31b0c0aa2bSBlaise Bourdin!/*TEST 32b0c0aa2bSBlaise Bourdin! 33b0c0aa2bSBlaise Bourdin! test: 34b0c0aa2bSBlaise Bourdin! requires: !complex 35b0c0aa2bSBlaise Bourdin! suffix: 0 36b0c0aa2bSBlaise Bourdin! args: -bopt yes,true,0 -sopt -1,2,3,4 37b0c0aa2bSBlaise Bourdin! 38b0c0aa2bSBlaise Bourdin!TEST*/ 39