<div dir="ltr">Our code broke in moving from v3.7 to current. The problem seems to be in  MatCreateVecs<div><br></div><div>Our code has:</div><div><br></div><div> Vec::XVec<br> Vec::BVec<br></div><div><br></div><div>  this%xVec2 = PETSC_NULL_VEC<br>  this%bVec2 = PETSC_NULL_VEC<br></div><div><br></div><div>call MatCreateVecs(solver%KKTmat,solver%xVec2,solver%bVec2,ierr)<br></div><div><br></div><div>Petsc code:</div><div>PETSC_EXTERN void PETSC_STDCALL matcreatevecs_(Mat *mat,Vec *right,Vec *left, int *ierr)<br>{<br>PetscPrintf(PETSC_COMM_SELF,"ZZZ 1) matcreatevecs_ start right=%p left=%p\n",right,left);<br>  CHKFORTRANNULLOBJECT(right);<br>  CHKFORTRANNULLOBJECT(left);<br>PetscPrintf(PETSC_COMM_SELF,"ZZZ 2) matcreatevecs_ start right=%p left=%p\n",right,left);<br>  *ierr = MatCreateVecs(*mat,right,left);<br>}<br></div><div><br></div><div>produces this:<br></div><div><br></div><div>ZZZ 1) matcreatevecs_ start right=0x7fffffff3758 left=0x7fffffff3760<br>ZZZ 2) matcreatevecs_ start right=(nil) left=(nil)<br></div><div><br></div><div>Shouldn't  this be?</div><div><br></div><div>PETSC_EXTERN void PETSC_STDCALL matcreatevecs_(Mat *mat,Vec *right,Vec *left, int *ierr)<br>{<br>  *ierr = MatCreateVecs(*mat,right,left);<br>}<br></div><div><br></div></div>