MatCreateVecs from Fortran problem
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); }
participants (1)
-
Mark Adams