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