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