For one - you might need PETSC_NULL_OBJECT. And even then - perhaps the compiler might complain [as it expects an array].
And then the fortran interface to MatNullSpaceCreate() doesn't have code to handle PETSC_NULL for this argument. [so it won't work anyway] So you are better off passing in a dummy Vec Vec :: dummyv(1) Also - its best to pass in 'variables' not cosntants like '0' to fortran subroutines. PetscInt :: zero zero = 0 Satish On Wed, 20 Feb 2013, Mi Yan wrote: > xlf9014.1 reported error for the below FORTRAN 90 code: > > ****** > MatNullSpace nullsp > PetscErrorCode :: ierr > call MatNullSpaceCreate( PETSC_COMM_WORLD, PETSC_TRUE, 0, > PETSC_NULL_INTEGER, nullsp, ierr ); > **** > The error message is: > Actual argument attributes do not match those specified by an accessible > explicit interface. > > The error implies the real argument the attribute of "PETSC_NULL_INTEGER" > does not match with those specified by the interface. The interface of > MatNullSpaceCreate is declared in finclude/ftn-auto/petscmat.h90 , whose > 4th dummy argument is declared as > Vec vecs (*) > > In my code, PETSC_NULL_INTEGER is passed to an array of Vec. Is there > anything wrong here? > > thanks, > Mi
