[petsc-dev] MatCreateVecs from Fortran problem

Mark Adams mfadams at lbl.gov
Tue Mar 17 12:33:00 CDT 2020


Our code broke in moving from v3.7 to current. The problem seems to be in
MatCreateVecs

Our code has:

 Vec::XVec
 Vec::BVec

  this%xVec2 = PETSC_NULL_VEC
  this%bVec2 = PETSC_NULL_VEC

call MatCreateVecs(solver%KKTmat,solver%xVec2,solver%bVec2,ierr)

Petsc code:
PETSC_EXTERN void PETSC_STDCALL matcreatevecs_(Mat *mat,Vec *right,Vec
*left, int *ierr)
{
PetscPrintf(PETSC_COMM_SELF,"ZZZ 1) matcreatevecs_ start right=%p
left=%p\n",right,left);
  CHKFORTRANNULLOBJECT(right);
  CHKFORTRANNULLOBJECT(left);
PetscPrintf(PETSC_COMM_SELF,"ZZZ 2) matcreatevecs_ start right=%p
left=%p\n",right,left);
  *ierr = MatCreateVecs(*mat,right,left);
}

produces this:

ZZZ 1) matcreatevecs_ start right=0x7fffffff3758 left=0x7fffffff3760
ZZZ 2) matcreatevecs_ start right=(nil) left=(nil)

Shouldn't  this be?

PETSC_EXTERN void PETSC_STDCALL matcreatevecs_(Mat *mat,Vec *right,Vec
*left, int *ierr)
{
  *ierr = MatCreateVecs(*mat,right,left);
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20200317/4f9806c7/attachment.html>


More information about the petsc-dev mailing list