      subroutine MatMPIAdjCreateNonemptySubcommMat(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatMPIAdjCreateNonemptySubcommMat
      subroutine MatMPIAdjToSeq(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatMPIAdjToSeq
      subroutine MatMPIAdjToSeqRankZero(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatMPIAdjToSeqRankZero
      subroutine MatMPIAdjSetPreallocation(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscErrorCode z
       end subroutine MatMPIAdjSetPreallocation
      subroutine MatFDColoringSetValues(a,b,c,z)
       import tMatFDColoring,tMat
       Mat a ! Mat
       MatFDColoring b ! MatFDColoring
       PetscScalar c (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatFDColoringSetValues
      subroutine MatMPIAIJGetNumberNonzeros(a,b,z)
       import tMat
       Mat a ! Mat
       PetscCount b ! PetscCount
       PetscErrorCode z
       end subroutine MatMPIAIJGetNumberNonzeros
      subroutine MatMPIAIJSetUseScalableIncreaseOverlap(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatMPIAIJSetUseScalableIncreaseOverlap
      subroutine MatMPIAIJSetPreallocationCSR(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscInt b (*) ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscScalar d (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatMPIAIJSetPreallocationCSR
      subroutine MatMPIAIJSetPreallocation(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatMPIAIJSetPreallocation
      subroutine MatCreateMPIAIJWithArrays(a,b,c,d,e,f,g,h,i,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f (*) ! PetscInt
       PetscInt g (*) ! PetscInt
       PetscScalar h (*) ! PetscScalar
       Mat i ! Mat
       PetscErrorCode z
       end subroutine MatCreateMPIAIJWithArrays
      subroutine MatUpdateMPIAIJWithArrays(a,b,c,d,e,f,g,h,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f (*) ! PetscInt
       PetscInt g (*) ! PetscInt
       PetscScalar h (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatUpdateMPIAIJWithArrays
      subroutine MatUpdateMPIAIJWithArray(a,b,z)
       import tMat
       Mat a ! Mat
       PetscScalar b (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatUpdateMPIAIJWithArray
      subroutine MatCreateAIJ(a,b,c,d,e,f,g,h,i,j,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       PetscInt g (*) ! PetscInt
       PetscInt h ! PetscInt
       PetscInt i (*) ! PetscInt
       Mat j ! Mat
       PetscErrorCode z
       end subroutine MatCreateAIJ
      subroutine MatCreateMPIAIJSumSeqAIJ(a,b,c,d,e,f,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       Mat b ! Mat
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       MatReuse e ! MatReuse
       Mat f ! Mat
       PetscErrorCode z
       end subroutine MatCreateMPIAIJSumSeqAIJ
      subroutine MatAIJGetLocalMat(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatAIJGetLocalMat
      subroutine MatMPIAIJGetLocalMat(a,b,c,z)
       import tMat
       Mat a ! Mat
       MatReuse b ! MatReuse
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatMPIAIJGetLocalMat
      subroutine MatMPIAIJGetLocalMatMerge(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       MatReuse b ! MatReuse
       IS c ! IS
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatMPIAIJGetLocalMatMerge
      subroutine MatCreateMPIAIJWithSplitArrays(a,b,c,d,e,f,g,h,i,j,k,l,&
     &z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f (*) ! PetscInt
       PetscInt g (*) ! PetscInt
       PetscScalar h (*) ! PetscScalar
       PetscInt i (*) ! PetscInt
       PetscInt j (*) ! PetscInt
       PetscScalar k (*) ! PetscScalar
       Mat l ! Mat
       PetscErrorCode z
       end subroutine MatCreateMPIAIJWithSplitArrays
      subroutine MatMkl_CPardisoSetCntl(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatMkl_CPardisoSetCntl
      subroutine MatCreateAIJCUSPARSE(a,b,c,d,e,f,g,h,i,j,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       PetscInt g (*) ! PetscInt
       PetscInt h ! PetscInt
       PetscInt i (*) ! PetscInt
       Mat j ! Mat
       PetscErrorCode z
       end subroutine MatCreateAIJCUSPARSE
      subroutine MatMumpsSetIcntl(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatMumpsSetIcntl
      subroutine MatMumpsGetIcntl(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatMumpsGetIcntl
      subroutine MatMumpsSetCntl(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscReal c ! PetscReal
       PetscErrorCode z
       end subroutine MatMumpsSetCntl
      subroutine MatMumpsGetCntl(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscReal c ! PetscReal
       PetscErrorCode z
       end subroutine MatMumpsGetCntl
      subroutine MatMumpsGetInverse(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatMumpsGetInverse
      subroutine MatMumpsGetInverseTranspose(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatMumpsGetInverseTranspose
      subroutine MatMumpsGetInfo(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatMumpsGetInfo
      subroutine MatMumpsGetInfog(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatMumpsGetInfog
      subroutine MatMumpsGetRinfo(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscReal c ! PetscReal
       PetscErrorCode z
       end subroutine MatMumpsGetRinfo
      subroutine MatMumpsGetRinfog(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscReal c ! PetscReal
       PetscErrorCode z
       end subroutine MatMumpsGetRinfog
      subroutine MatMumpsGetNullPivots(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatMumpsGetNullPivots
      subroutine MatSTRUMPACKSetReordering(a,b,z)
       import tMat
       Mat a ! Mat
       MatSTRUMPACKReordering b ! MatSTRUMPACKReordering
       PetscErrorCode z
       end subroutine MatSTRUMPACKSetReordering
      subroutine MatSTRUMPACKGetReordering(a,b,z)
       import tMat
       Mat a ! Mat
       MatSTRUMPACKReordering b ! MatSTRUMPACKReordering
       PetscErrorCode z
       end subroutine MatSTRUMPACKGetReordering
      subroutine MatSTRUMPACKSetColPerm(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatSTRUMPACKSetColPerm
      subroutine MatSTRUMPACKGetColPerm(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatSTRUMPACKGetColPerm
      subroutine MatSTRUMPACKSetGPU(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatSTRUMPACKSetGPU
      subroutine MatSTRUMPACKGetGPU(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatSTRUMPACKGetGPU
      subroutine MatSTRUMPACKSetCompression(a,b,z)
       import tMat
       Mat a ! Mat
       MatSTRUMPACKCompressionType b ! MatSTRUMPACKCompressionType
       PetscErrorCode z
       end subroutine MatSTRUMPACKSetCompression
      subroutine MatSTRUMPACKGetCompression(a,b,z)
       import tMat
       Mat a ! Mat
       MatSTRUMPACKCompressionType b ! MatSTRUMPACKCompressionType
       PetscErrorCode z
       end subroutine MatSTRUMPACKGetCompression
      subroutine MatSTRUMPACKSetCompRelTol(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine MatSTRUMPACKSetCompRelTol
      subroutine MatSTRUMPACKGetCompRelTol(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine MatSTRUMPACKGetCompRelTol
      subroutine MatSTRUMPACKSetCompAbsTol(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine MatSTRUMPACKSetCompAbsTol
      subroutine MatSTRUMPACKGetCompAbsTol(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine MatSTRUMPACKGetCompAbsTol
      subroutine MatSTRUMPACKSetCompLeafSize(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSTRUMPACKSetCompLeafSize
      subroutine MatSTRUMPACKGetCompLeafSize(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSTRUMPACKGetCompLeafSize
      subroutine MatSTRUMPACKSetGeometricNxyz(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscErrorCode z
       end subroutine MatSTRUMPACKSetGeometricNxyz
      subroutine MatSTRUMPACKSetGeometricComponents(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSTRUMPACKSetGeometricComponents
      subroutine MatSTRUMPACKSetGeometricWidth(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSTRUMPACKSetGeometricWidth
      subroutine MatSTRUMPACKSetCompMinSepSize(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSTRUMPACKSetCompMinSepSize
      subroutine MatSTRUMPACKGetCompMinSepSize(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSTRUMPACKGetCompMinSepSize
      subroutine MatSTRUMPACKSetCompLossyPrecision(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSTRUMPACKSetCompLossyPrecision
      subroutine MatSTRUMPACKGetCompLossyPrecision(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSTRUMPACKGetCompLossyPrecision
      subroutine MatSTRUMPACKSetCompButterflyLevels(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSTRUMPACKSetCompButterflyLevels
      subroutine MatSTRUMPACKGetCompButterflyLevels(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSTRUMPACKGetCompButterflyLevels
      subroutine MatSeqAIJSetTotalPreallocation(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSeqAIJSetTotalPreallocation
      subroutine MatSeqAIJSetColumnIndices(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSeqAIJSetColumnIndices
      subroutine MatStoreValues(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatStoreValues
      subroutine MatRetrieveValues(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatRetrieveValues
      subroutine MatCreateSeqAIJ(a,b,c,d,e,f,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e (*) ! PetscInt
       Mat f ! Mat
       PetscErrorCode z
       end subroutine MatCreateSeqAIJ
      subroutine MatSeqAIJSetPreallocation(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatSeqAIJSetPreallocation
      subroutine MatSeqAIJSetPreallocationCSR(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscInt b (*) ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscScalar d (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatSeqAIJSetPreallocationCSR
      subroutine MatSeqAIJKron(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       MatReuse c ! MatReuse
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatSeqAIJKron
      subroutine MatSeqAIJGetMaxRowNonzeros(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSeqAIJGetMaxRowNonzeros
      subroutine MatCreateSeqAIJWithArrays(a,b,c,d,e,f,g,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d (*) ! PetscInt
       PetscInt e (*) ! PetscInt
       PetscScalar f (*) ! PetscScalar
       Mat g ! Mat
       PetscErrorCode z
       end subroutine MatCreateSeqAIJWithArrays
      subroutine MatCreateSeqAIJFromTriple(a,b,c,d,e,f,g,h,i,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d (*) ! PetscInt
       PetscInt e (*) ! PetscInt
       PetscScalar f (*) ! PetscScalar
       Mat g ! Mat
       PetscInt h ! PetscInt
       PetscBool i ! PetscBool
       PetscErrorCode z
       end subroutine MatCreateSeqAIJFromTriple
      subroutine MatSeqAIJSetType(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b ! MatType
       PetscErrorCode z
       end subroutine MatSeqAIJSetType
      subroutine MatMkl_PardisoSetCntl(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatMkl_PardisoSetCntl
      subroutine MatCUSPARSESetFormat(a,b,c,z)
       import tMat
       Mat a ! Mat
       MatCUSPARSEFormatOperation b ! MatCUSPARSEFormatOperation
       MatCUSPARSEStorageFormat c ! MatCUSPARSEStorageFormat
       PetscErrorCode z
       end subroutine MatCUSPARSESetFormat
      subroutine MatCUSPARSESetUseCPUSolve(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatCUSPARSESetUseCPUSolve
      subroutine MatCreateSeqAIJCUSPARSE(a,b,c,d,e,f,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e (*) ! PetscInt
       Mat f ! Mat
       PetscErrorCode z
       end subroutine MatCreateSeqAIJCUSPARSE
      subroutine MatSuperluSetILUDropTol(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine MatSuperluSetILUDropTol
      subroutine MatMPIBAIJSetPreallocation(a,b,c,d,e,f,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d (*) ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatMPIBAIJSetPreallocation
      subroutine MatCreateBAIJ(a,b,c,d,e,f,g,h,i,j,k,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       PetscInt g ! PetscInt
       PetscInt h (*) ! PetscInt
       PetscInt i ! PetscInt
       PetscInt j (*) ! PetscInt
       Mat k ! Mat
       PetscErrorCode z
       end subroutine MatCreateBAIJ
      subroutine MatMPIBAIJSetHashTableFactor(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine MatMPIBAIJSetHashTableFactor
      subroutine MatCreateMPIBAIJWithArrays(a,b,c,d,e,f,g,h,i,j,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       PetscInt g (*) ! PetscInt
       PetscInt h (*) ! PetscInt
       PetscScalar i (*) ! PetscScalar
       Mat j ! Mat
       PetscErrorCode z
       end subroutine MatCreateMPIBAIJWithArrays
      subroutine MatCreateBAIJMKL(a,b,c,d,e,f,g,h,i,j,k,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       PetscInt g ! PetscInt
       PetscInt h (*) ! PetscInt
       PetscInt i ! PetscInt
       PetscInt j (*) ! PetscInt
       Mat k ! Mat
       PetscErrorCode z
       end subroutine MatCreateBAIJMKL
      subroutine MatSeqBAIJSetColumnIndices(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSeqBAIJSetColumnIndices
      subroutine MatCreateSeqBAIJ(a,b,c,d,e,f,g,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f (*) ! PetscInt
       Mat g ! Mat
       PetscErrorCode z
       end subroutine MatCreateSeqBAIJ
      subroutine MatSeqBAIJSetPreallocation(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatSeqBAIJSetPreallocation
      subroutine MatCreateSeqBAIJWithArrays(a,b,c,d,e,f,g,h,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e (*) ! PetscInt
       PetscInt f (*) ! PetscInt
       PetscScalar g (*) ! PetscScalar
       Mat h ! Mat
       PetscErrorCode z
       end subroutine MatCreateSeqBAIJWithArrays
      subroutine MatCreateSeqBAIJMKL(a,b,c,d,e,f,g,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f (*) ! PetscInt
       Mat g ! Mat
       PetscErrorCode z
       end subroutine MatCreateSeqBAIJMKL
      subroutine MatCreateConstantDiagonal(a,b,c,d,e,f,g,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscScalar f ! PetscScalar
       Mat g ! Mat
       PetscErrorCode z
       end subroutine MatCreateConstantDiagonal
      subroutine MatCreateCentering(a,b,c,d,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatCreateCentering
      subroutine MatCreateComposite(a,b,c,d,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       Mat c ! Mat
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatCreateComposite
      subroutine MatCompositeAddMat(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatCompositeAddMat
      subroutine MatCompositeSetType(a,b,z)
       import tMat
       Mat a ! Mat
       MatCompositeType b ! MatCompositeType
       PetscErrorCode z
       end subroutine MatCompositeSetType
      subroutine MatCompositeGetType(a,b,z)
       import tMat
       Mat a ! Mat
       MatCompositeType b ! MatCompositeType
       PetscErrorCode z
       end subroutine MatCompositeGetType
      subroutine MatCompositeSetMatStructure(a,b,z)
       import tMat
       Mat a ! Mat
       MatStructure b ! MatStructure
       PetscErrorCode z
       end subroutine MatCompositeSetMatStructure
      subroutine MatCompositeGetMatStructure(a,b,z)
       import tMat
       Mat a ! Mat
       MatStructure b ! MatStructure
       PetscErrorCode z
       end subroutine MatCompositeGetMatStructure
      subroutine MatCompositeSetMergeType(a,b,z)
       import tMat
       Mat a ! Mat
       MatCompositeMergeType b ! MatCompositeMergeType
       PetscErrorCode z
       end subroutine MatCompositeSetMergeType
      subroutine MatCompositeMerge(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatCompositeMerge
      subroutine MatCompositeGetNumberMat(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatCompositeGetNumberMat
      subroutine MatCompositeGetMat(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatCompositeGetMat
      subroutine MatCompositeSetScalings(a,b,z)
       import tMat
       Mat a ! Mat
       PetscScalar b ! PetscScalar
       PetscErrorCode z
       end subroutine MatCompositeSetScalings
      subroutine MatCreateSeqCUFFT(a,b,c,d,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatCreateSeqCUFFT
      subroutine MatDenseGetLocalMatrix(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatDenseGetLocalMatrix
      subroutine MatMPIDenseSetPreallocation(a,b,z)
       import tMat
       Mat a ! Mat
       PetscScalar b ! PetscScalar
       PetscErrorCode z
       end subroutine MatMPIDenseSetPreallocation
      subroutine MatDensePlaceArray(a,b,z)
       import tMat
       Mat a ! Mat
       PetscScalar b ! PetscScalar
       PetscErrorCode z
       end subroutine MatDensePlaceArray
      subroutine MatDenseResetArray(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatDenseResetArray
      subroutine MatDenseReplaceArray(a,b,z)
       import tMat
       Mat a ! Mat
       PetscScalar b ! PetscScalar
       PetscErrorCode z
       end subroutine MatDenseReplaceArray
      subroutine MatCreateDense(a,b,c,d,e,f,g,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscScalar f ! PetscScalar
       Mat g ! Mat
       PetscErrorCode z
       end subroutine MatCreateDense
      subroutine MatDenseGetLDA(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatDenseGetLDA
      subroutine MatDenseSetLDA(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatDenseSetLDA
      subroutine MatCreateSeqDense(a,b,c,d,e,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscScalar d (*) ! PetscScalar
       Mat e ! Mat
       PetscErrorCode z
       end subroutine MatCreateSeqDense
      subroutine MatSeqDenseSetPreallocation(a,b,z)
       import tMat
       Mat a ! Mat
       PetscScalar b (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatSeqDenseSetPreallocation
      subroutine MatDenseGetColumnVec(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatDenseGetColumnVec
      subroutine MatDenseRestoreColumnVec(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatDenseRestoreColumnVec
      subroutine MatDenseGetColumnVecRead(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatDenseGetColumnVecRead
      subroutine MatDenseRestoreColumnVecRead(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatDenseRestoreColumnVecRead
      subroutine MatDenseGetColumnVecWrite(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatDenseGetColumnVecWrite
      subroutine MatDenseRestoreColumnVecWrite(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatDenseRestoreColumnVecWrite
      subroutine MatDenseGetSubMatrix(a,b,c,d,e,f,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       Mat f ! Mat
       PetscErrorCode z
       end subroutine MatDenseGetSubMatrix
      subroutine MatDenseRestoreSubMatrix(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatDenseRestoreSubMatrix
      subroutine MatDiagonalGetDiagonal(a,b,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscErrorCode z
       end subroutine MatDiagonalGetDiagonal
      subroutine MatDiagonalRestoreDiagonal(a,b,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscErrorCode z
       end subroutine MatDiagonalRestoreDiagonal
      subroutine MatDiagonalGetInverseDiagonal(a,b,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscErrorCode z
       end subroutine MatDiagonalGetInverseDiagonal
      subroutine MatDiagonalRestoreInverseDiagonal(a,b,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscErrorCode z
       end subroutine MatDiagonalRestoreInverseDiagonal
      subroutine MatCreateDiagonal(a,b,z)
       import tVec,tMat
       Vec a ! Vec
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatCreateDiagonal
      subroutine MatCreateFFT(a,b,c,d,e,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       character(*) d ! MatType
       Mat e ! Mat
       PetscErrorCode z
       end subroutine MatCreateFFT
      subroutine MatCreateVecsFFTW(a,b,c,d,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       Vec d ! Vec
       PetscErrorCode z
       end subroutine MatCreateVecsFFTW
      subroutine VecScatterPetscToFFTW(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine VecScatterPetscToFFTW
      subroutine VecScatterFFTWToPetsc(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine VecScatterFFTWToPetsc
      subroutine MatH2OpusOrthogonalize(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatH2OpusOrthogonalize
      subroutine MatH2OpusCompress(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine MatH2OpusCompress
      subroutine MatH2OpusSetSamplingMat(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscInt c ! PetscInt
       PetscReal d ! PetscReal
       PetscErrorCode z
       end subroutine MatH2OpusSetSamplingMat
      subroutine MatCreateH2OpusFromMat(a,b,c,d,e,f,g,h,i,j,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscReal c (*) ! PetscReal
       PetscBool d ! PetscBool
       PetscReal e ! PetscReal
       PetscInt f ! PetscInt
       PetscInt g ! PetscInt
       PetscInt h ! PetscInt
       PetscReal i ! PetscReal
       Mat j ! Mat
       PetscErrorCode z
       end subroutine MatCreateH2OpusFromMat
      subroutine MatH2OpusGetIndexMap(a,b,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       PetscErrorCode z
       end subroutine MatH2OpusGetIndexMap
      subroutine MatH2OpusMapVec(a,b,c,d,z)
       import tVec,tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       Vec c ! Vec
       Vec d ! Vec
       PetscErrorCode z
       end subroutine MatH2OpusMapVec
      subroutine MatH2OpusLowRankUpdate(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       PetscScalar d ! PetscScalar
       PetscErrorCode z
       end subroutine MatH2OpusLowRankUpdate
      subroutine MatHtoolGetPermutationSource(a,b,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       PetscErrorCode z
       end subroutine MatHtoolGetPermutationSource
      subroutine MatHtoolGetPermutationTarget(a,b,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       PetscErrorCode z
       end subroutine MatHtoolGetPermutationTarget
      subroutine MatHtoolUsePermutation(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatHtoolUsePermutation
      subroutine MatISGetAllowRepeated(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatISGetAllowRepeated
      subroutine MatISSetAllowRepeated(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatISSetAllowRepeated
      subroutine MatISStoreL2L(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatISStoreL2L
      subroutine MatISFixLocalEmpty(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatISFixLocalEmpty
      subroutine MatISSetPreallocation(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatISSetPreallocation
      subroutine MatISGetLocalMat(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatISGetLocalMat
      subroutine MatISRestoreLocalMat(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatISRestoreLocalMat
      subroutine MatISSetLocalMatType(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b ! MatType
       PetscErrorCode z
       end subroutine MatISSetLocalMatType
      subroutine MatISSetLocalMat(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatISSetLocalMat
      subroutine MatCreateIS(a,b,c,d,e,f,g,h,i,z)
       import tMat,tISLocalToGlobalMapping
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       ISLocalToGlobalMapping g ! ISLocalToGlobalMapping
       ISLocalToGlobalMapping h ! ISLocalToGlobalMapping
       Mat i ! Mat
       PetscErrorCode z
       end subroutine MatCreateIS
      subroutine MatISGetLocalToGlobalMapping(a,b,c,z)
       import tMat,tISLocalToGlobalMapping
       Mat a ! Mat
       ISLocalToGlobalMapping b ! ISLocalToGlobalMapping
       ISLocalToGlobalMapping c ! ISLocalToGlobalMapping
       PetscErrorCode z
       end subroutine MatISGetLocalToGlobalMapping
      subroutine MatKAIJGetAIJ(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatKAIJGetAIJ
      subroutine MatKAIJSetAIJ(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatKAIJSetAIJ
      subroutine MatKAIJSetS(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscScalar d (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatKAIJSetS
      subroutine MatKAIJGetScaledIdentity(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatKAIJGetScaledIdentity
      subroutine MatKAIJSetT(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscScalar d (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatKAIJSetT
      subroutine MatCreateLocalRef(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       IS c ! IS
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatCreateLocalRef
      subroutine MatLRCGetMats(a,b,c,d,e,z)
       import tVec,tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       Vec d ! Vec
       Mat e ! Mat
       PetscErrorCode z
       end subroutine MatLRCGetMats
      subroutine MatLRCSetMats(a,b,c,d,e,z)
       import tVec,tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       Vec d ! Vec
       Mat e ! Mat
       PetscErrorCode z
       end subroutine MatLRCSetMats
      subroutine MatCreateLRC(a,b,c,d,e,z)
       import tVec,tMat
       Mat a ! Mat
       Mat b ! Mat
       Vec c ! Vec
       Mat d ! Mat
       Mat e ! Mat
       PetscErrorCode z
       end subroutine MatCreateLRC
      subroutine MatMAIJGetAIJ(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatMAIJGetAIJ
      subroutine MatMAIJRedimension(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatMAIJRedimension
      subroutine MatCreateMAIJ(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatCreateMAIJ
      subroutine MatMFFDDSSetUmin(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine MatMFFDDSSetUmin
      subroutine MatMFFDWPSetComputeNormU(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatMFFDWPSetComputeNormU
      subroutine MatMFFDSetType(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b ! MatMFFDType
       PetscErrorCode z
       end subroutine MatMFFDSetType
      subroutine MatMFFDSetOptionsPrefix(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine MatMFFDSetOptionsPrefix
      subroutine MatCreateMFFD(a,b,c,d,e,f,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       Mat f ! Mat
       PetscErrorCode z
       end subroutine MatCreateMFFD
      subroutine MatMFFDGetH(a,b,z)
       import tMat
       Mat a ! Mat
       PetscScalar b ! PetscScalar
       PetscErrorCode z
       end subroutine MatMFFDGetH
      subroutine MatMFFDSetPeriod(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatMFFDSetPeriod
      subroutine MatMFFDSetFunctionError(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine MatMFFDSetFunctionError
      subroutine MatMFFDSetHHistory(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscScalar b (*) ! PetscScalar
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatMFFDSetHHistory
      subroutine MatMFFDResetHHistory(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatMFFDResetHHistory
      subroutine MatMFFDSetBase(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatMFFDSetBase
      subroutine MatNestGetSubMat(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatNestGetSubMat
      subroutine MatNestSetSubMat(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatNestSetSubMat
      subroutine MatNestGetSize(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatNestGetSize
      subroutine MatNestGetISs(a,b,c,z)
       import tIS,tMat
       Mat a ! Mat
       IS b (*) ! IS
       IS c (*) ! IS
       PetscErrorCode z
       end subroutine MatNestGetISs
      subroutine MatNestGetLocalISs(a,b,c,z)
       import tIS,tMat
       Mat a ! Mat
       IS b (*) ! IS
       IS c (*) ! IS
       PetscErrorCode z
       end subroutine MatNestGetLocalISs
      subroutine MatNestSetVecType(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b ! VecType
       PetscErrorCode z
       end subroutine MatNestSetVecType
      subroutine MatNestSetSubMats(a,b,c,d,e,f,z)
       import tIS,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       IS c (*) ! IS
       PetscInt d ! PetscInt
       IS e (*) ! IS
       Mat f (*) ! Mat
       PetscErrorCode z
       end subroutine MatNestSetSubMats
      subroutine MatNormalGetMat(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatNormalGetMat
      subroutine MatCreateNormal(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatCreateNormal
      subroutine MatNormalHermitianGetMat(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatNormalHermitianGetMat
      subroutine MatCreateNormalHermitian(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatCreateNormalHermitian
      subroutine MatPreallocatorPreallocate(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatPreallocatorPreallocate
      subroutine MatPythonSetType(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine MatPythonSetType
      subroutine MatPythonGetType(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine MatPythonGetType
      subroutine MatPythonCreate(a,b,c,d,e,f,g,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       character(*) f (*) ! char
       Mat g ! Mat
       PetscErrorCode z
       end subroutine MatPythonCreate
      subroutine MatMPISBAIJSetPreallocation(a,b,c,d,e,f,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d (*) ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatMPISBAIJSetPreallocation
      subroutine MatCreateSBAIJ(a,b,c,d,e,f,g,h,i,j,k,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       PetscInt g ! PetscInt
       PetscInt h (*) ! PetscInt
       PetscInt i ! PetscInt
       PetscInt j (*) ! PetscInt
       Mat k ! Mat
       PetscErrorCode z
       end subroutine MatCreateSBAIJ
      subroutine MatCreateMPISBAIJWithArrays(a,b,c,d,e,f,g,h,i,j,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       PetscInt g (*) ! PetscInt
       PetscInt h (*) ! PetscInt
       PetscScalar i (*) ! PetscScalar
       Mat j ! Mat
       PetscErrorCode z
       end subroutine MatCreateMPISBAIJWithArrays
      subroutine MatMPISBAIJSetPreallocationCSR(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscInt d (*) ! PetscInt
       PetscScalar e (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatMPISBAIJSetPreallocationCSR
      subroutine MatSeqSBAIJSetColumnIndices(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSeqSBAIJSetColumnIndices
      subroutine MatSeqSBAIJSetPreallocation(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatSeqSBAIJSetPreallocation
      subroutine MatCreateSeqSBAIJ(a,b,c,d,e,f,g,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f (*) ! PetscInt
       Mat g ! Mat
       PetscErrorCode z
       end subroutine MatCreateSeqSBAIJ
      subroutine MatCreateSeqSBAIJWithArrays(a,b,c,d,e,f,g,h,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e (*) ! PetscInt
       PetscInt f (*) ! PetscInt
       PetscScalar g (*) ! PetscScalar
       Mat h ! Mat
       PetscErrorCode z
       end subroutine MatCreateSeqSBAIJWithArrays
      subroutine MatScaLAPACKSetBlockSizes(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatScaLAPACKSetBlockSizes
      subroutine MatScaLAPACKGetBlockSizes(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatScaLAPACKGetBlockSizes
      subroutine MatScatterGetVecScatter(a,b,z)
       import tMat,tVecScatter
       Mat a ! Mat
       VecScatter b ! VecScatter
       PetscErrorCode z
       end subroutine MatScatterGetVecScatter
      subroutine MatCreateScatter(a,b,c,z)
       import tMat,tVecScatter
       MPI_Comm a ! MPI_Comm
       VecScatter b ! VecScatter
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatCreateScatter
      subroutine MatScatterSetVecScatter(a,b,z)
       import tMat,tVecScatter
       Mat a ! Mat
       VecScatter b ! VecScatter
       PetscErrorCode z
       end subroutine MatScatterSetVecScatter
      subroutine MatCreateSELLCUDA(a,b,c,d,e,f,g,h,i,j,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       PetscInt g (*) ! PetscInt
       PetscInt h ! PetscInt
       PetscInt i (*) ! PetscInt
       Mat j ! Mat
       PetscErrorCode z
       end subroutine MatCreateSELLCUDA
      subroutine MatSeqSELLSetPreallocation(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatSeqSELLSetPreallocation
      subroutine MatSeqSELLGetFillRatio(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine MatSeqSELLGetFillRatio
      subroutine MatSeqSELLGetMaxSliceWidth(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSeqSELLGetMaxSliceWidth
      subroutine MatSeqSELLGetAvgSliceWidth(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine MatSeqSELLGetAvgSliceWidth
      subroutine MatSeqSELLSetSliceHeight(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSeqSELLSetSliceHeight
      subroutine MatSeqSELLGetVarSliceSize(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine MatSeqSELLGetVarSliceSize
      subroutine MatCreateSeqSELL(a,b,c,d,e,f,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e (*) ! PetscInt
       Mat f ! Mat
       PetscErrorCode z
       end subroutine MatCreateSeqSELL
      subroutine MatShellSetManageScalingShifts(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatShellSetManageScalingShifts
      subroutine MatIsShell(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatIsShell
      subroutine MatCreateSubMatrixVirtual(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       IS c ! IS
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatCreateSubMatrixVirtual
      subroutine MatSubMatrixVirtualUpdate(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       Mat b ! Mat
       IS c ! IS
       IS d ! IS
       PetscErrorCode z
       end subroutine MatSubMatrixVirtualUpdate
      subroutine MatHermitianTransposeGetMat(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatHermitianTransposeGetMat
      subroutine MatCreateHermitianTranspose(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatCreateHermitianTranspose
      subroutine MatTransposeGetMat(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatTransposeGetMat
      subroutine MatCreateTranspose(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatCreateTranspose
      subroutine MatNullSpaceCreateRigidBody(a,b,z)
       import tMatNullSpace,tVec
       Vec a ! Vec
       MatNullSpace b ! MatNullSpace
       PetscErrorCode z
       end subroutine MatNullSpaceCreateRigidBody
      subroutine MatNullSpaceView(a,b,z)
       import tMatNullSpace,tPetscViewer
       MatNullSpace a ! MatNullSpace
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine MatNullSpaceView
      subroutine MatNullSpaceCreate(a,b,c,d,e,z)
       import tMatNullSpace,tVec
       MPI_Comm a ! MPI_Comm
       PetscBool b ! PetscBool
       PetscInt c ! PetscInt
       Vec d (*) ! Vec
       MatNullSpace e ! MatNullSpace
       PetscErrorCode z
       end subroutine MatNullSpaceCreate
      subroutine MatNullSpaceDestroy(a,z)
       import tMatNullSpace
       MatNullSpace a ! MatNullSpace
       PetscErrorCode z
       end subroutine MatNullSpaceDestroy
      subroutine MatNullSpaceRemove(a,b,z)
       import tMatNullSpace,tVec
       MatNullSpace a ! MatNullSpace
       Vec b ! Vec
       PetscErrorCode z
       end subroutine MatNullSpaceRemove
      subroutine MatNullSpaceTest(a,b,c,z)
       import tMatNullSpace,tMat
       MatNullSpace a ! MatNullSpace
       Mat b ! Mat
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine MatNullSpaceTest
      subroutine MatProductReplaceMats(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatProductReplaceMats
      subroutine MatProductSetFromOptions(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatProductSetFromOptions
      subroutine MatProductView(a,b,z)
       import tMat,tPetscViewer
       Mat a ! Mat
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine MatProductView
      subroutine MatProductNumeric(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatProductNumeric
      subroutine MatProductSymbolic(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatProductSymbolic
      subroutine MatProductSetFill(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine MatProductSetFill
      subroutine MatProductSetAlgorithm(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b ! MatProductAlgorithm
       PetscErrorCode z
       end subroutine MatProductSetAlgorithm
      subroutine MatProductGetAlgorithm(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b ! MatProductAlgorithm
       PetscErrorCode z
       end subroutine MatProductGetAlgorithm
      subroutine MatProductSetType(a,b,z)
       import tMat
       Mat a ! Mat
       MatProductType b ! MatProductType
       PetscErrorCode z
       end subroutine MatProductSetType
      subroutine MatProductClear(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatProductClear
      subroutine MatProductCreateWithMat(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatProductCreateWithMat
      subroutine MatProductCreate(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatProductCreate
      subroutine MatProductGetType(a,b,z)
       import tMat
       Mat a ! Mat
       MatProductType b ! MatProductType
       PetscErrorCode z
       end subroutine MatProductGetType
      subroutine MatProductGetMats(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatProductGetMats
      subroutine MatSetType(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b ! MatType
       PetscErrorCode z
       end subroutine MatSetType
      subroutine MatGetType(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b ! MatType
       PetscErrorCode z
       end subroutine MatGetType
      subroutine MatGetVecType(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b ! VecType
       PetscErrorCode z
       end subroutine MatGetVecType
      subroutine MatSetVecType(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b ! VecType
       PetscErrorCode z
       end subroutine MatSetVecType
      subroutine MatRegisterRootName(a,b,c,z)
       character(*) a (*) ! char
       character(*) b (*) ! char
       character(*) c (*) ! char
       PetscErrorCode z
       end subroutine MatRegisterRootName
      subroutine MatSetRandom(a,b,z)
       import tMat,tPetscRandom
       Mat a ! Mat
       PetscRandom b ! PetscRandom
       PetscErrorCode z
       end subroutine MatSetRandom
      subroutine MatFactorGetErrorZeroPivot(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatFactorGetErrorZeroPivot
      subroutine MatFactorGetError(a,b,z)
       import tMat
       Mat a ! Mat
       MatFactorError b ! MatFactorError
       PetscErrorCode z
       end subroutine MatFactorGetError
      subroutine MatFactorClearError(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatFactorClearError
      subroutine MatFindNonzeroRows(a,b,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       PetscErrorCode z
       end subroutine MatFindNonzeroRows
      subroutine MatFindZeroRows(a,b,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       PetscErrorCode z
       end subroutine MatFindZeroRows
      subroutine MatGetDiagonalBlock(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatGetDiagonalBlock
      subroutine MatGetTrace(a,b,z)
       import tMat
       Mat a ! Mat
       PetscScalar b ! PetscScalar
       PetscErrorCode z
       end subroutine MatGetTrace
      subroutine MatRealPart(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatRealPart
      subroutine MatImaginaryPart(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatImaginaryPart
      subroutine MatMissingDiagonal(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatMissingDiagonal
      subroutine MatConjugate(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatConjugate
      subroutine MatGetRowUpperTriangular(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatGetRowUpperTriangular
      subroutine MatRestoreRowUpperTriangular(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatRestoreRowUpperTriangular
      subroutine MatSetOptionsPrefix(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine MatSetOptionsPrefix
      subroutine MatSetOptionsPrefixFactor(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine MatSetOptionsPrefixFactor
      subroutine MatAppendOptionsPrefixFactor(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine MatAppendOptionsPrefixFactor
      subroutine MatAppendOptionsPrefix(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine MatAppendOptionsPrefix
      subroutine MatGetOptionsPrefix(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine MatGetOptionsPrefix
      subroutine MatGetState(a,b,z)
       import tMat,tPetscObject
       Mat a ! Mat
       PetscObjectState b ! PetscObjectState
       PetscErrorCode z
       end subroutine MatGetState
      subroutine MatResetPreallocation(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatResetPreallocation
      subroutine MatSetUp(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatSetUp
#if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
      subroutine MatViewFromOptions(a,b,c,z)
       import tMat,tPetscObject
       Mat a ! Mat
       type(*) b ! PetscObject
       character(*) c (*) ! char
       PetscErrorCode z
       end subroutine MatViewFromOptions
#endif
      subroutine MatView(a,b,z)
       import tMat,tPetscViewer
       Mat a ! Mat
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine MatView
      subroutine MatLoad(a,b,z)
       import tMat,tPetscViewer
       Mat a ! Mat
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine MatLoad
      subroutine MatDestroy(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatDestroy
      subroutine MatSetValues(a,b,c,d,e,f,g,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e (*) ! PetscInt
       PetscScalar f (*) ! PetscScalar
       InsertMode g ! InsertMode
       PetscErrorCode z
       end subroutine MatSetValues
      subroutine MatSetValuesIS(a,b,c,d,e,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       IS c ! IS
       PetscScalar d (*) ! PetscScalar
       InsertMode e ! InsertMode
       PetscErrorCode z
       end subroutine MatSetValuesIS
      subroutine MatSetValuesRowLocal(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscScalar c (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatSetValuesRowLocal
      subroutine MatSetValuesRow(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscScalar c (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatSetValuesRow
      subroutine MatSetValuesStencil(a,b,c,d,e,f,g,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       MatStencil c (*) ! MatStencil
       PetscInt d ! PetscInt
       MatStencil e (*) ! MatStencil
       PetscScalar f (*) ! PetscScalar
       InsertMode g ! InsertMode
       PetscErrorCode z
       end subroutine MatSetValuesStencil
      subroutine MatSetValuesBlockedStencil(a,b,c,d,e,f,g,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       MatStencil c (*) ! MatStencil
       PetscInt d ! PetscInt
       MatStencil e (*) ! MatStencil
       PetscScalar f (*) ! PetscScalar
       InsertMode g ! InsertMode
       PetscErrorCode z
       end subroutine MatSetValuesBlockedStencil
      subroutine MatSetStencil(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscInt d (*) ! PetscInt
       PetscInt e ! PetscInt
       PetscErrorCode z
       end subroutine MatSetStencil
      subroutine MatSetValuesBlocked(a,b,c,d,e,f,g,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e (*) ! PetscInt
       PetscScalar f (*) ! PetscScalar
       InsertMode g ! InsertMode
       PetscErrorCode z
       end subroutine MatSetValuesBlocked
      subroutine MatGetValues(a,b,c,d,e,f,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e (*) ! PetscInt
       PetscScalar f (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatGetValues
      subroutine MatGetValuesLocal(a,b,c,d,e,f,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e (*) ! PetscInt
       PetscScalar f (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatGetValuesLocal
      subroutine MatSetValuesBatch(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d (*) ! PetscInt
       PetscScalar e (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatSetValuesBatch
      subroutine MatSetLocalToGlobalMapping(a,b,c,z)
       import tMat,tISLocalToGlobalMapping
       Mat a ! Mat
       ISLocalToGlobalMapping b ! ISLocalToGlobalMapping
       ISLocalToGlobalMapping c ! ISLocalToGlobalMapping
       PetscErrorCode z
       end subroutine MatSetLocalToGlobalMapping
      subroutine MatGetLocalToGlobalMapping(a,b,c,z)
       import tMat,tISLocalToGlobalMapping
       Mat a ! Mat
       ISLocalToGlobalMapping b ! ISLocalToGlobalMapping
       ISLocalToGlobalMapping c ! ISLocalToGlobalMapping
       PetscErrorCode z
       end subroutine MatGetLocalToGlobalMapping
      subroutine MatSetLayouts(a,b,c,z)
       import tPetscLayout,tMat
       Mat a ! Mat
       PetscLayout b ! PetscLayout
       PetscLayout c ! PetscLayout
       PetscErrorCode z
       end subroutine MatSetLayouts
      subroutine MatGetLayouts(a,b,c,z)
       import tPetscLayout,tMat
       Mat a ! Mat
       PetscLayout b ! PetscLayout
       PetscLayout c ! PetscLayout
       PetscErrorCode z
       end subroutine MatGetLayouts
      subroutine MatSetValuesLocal(a,b,c,d,e,f,g,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e (*) ! PetscInt
       PetscScalar f (*) ! PetscScalar
       InsertMode g ! InsertMode
       PetscErrorCode z
       end subroutine MatSetValuesLocal
      subroutine MatSetValuesBlockedLocal(a,b,c,d,e,f,g,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e (*) ! PetscInt
       PetscScalar f (*) ! PetscScalar
       InsertMode g ! InsertMode
       PetscErrorCode z
       end subroutine MatSetValuesBlockedLocal
      subroutine MatMultDiagonalBlock(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatMultDiagonalBlock
      subroutine MatMult(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatMult
      subroutine MatMultTranspose(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatMultTranspose
      subroutine MatMultHermitianTranspose(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatMultHermitianTranspose
      subroutine MatMultAdd(a,b,c,d,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       Vec d ! Vec
       PetscErrorCode z
       end subroutine MatMultAdd
      subroutine MatMultTransposeAdd(a,b,c,d,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       Vec d ! Vec
       PetscErrorCode z
       end subroutine MatMultTransposeAdd
      subroutine MatMultHermitianTransposeAdd(a,b,c,d,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       Vec d ! Vec
       PetscErrorCode z
       end subroutine MatMultHermitianTransposeAdd
      subroutine MatGetFactorType(a,b,z)
       import tMat
       Mat a ! Mat
       MatFactorType b ! MatFactorType
       PetscErrorCode z
       end subroutine MatGetFactorType
      subroutine MatSetFactorType(a,b,z)
       import tMat
       Mat a ! Mat
       MatFactorType b ! MatFactorType
       PetscErrorCode z
       end subroutine MatSetFactorType
      subroutine MatGetInfo(a,b,c,z)
       import tMat
       Mat a ! Mat
       MatInfoType b ! MatInfoType
       MatInfo c (*) ! MatInfo
       PetscErrorCode z
       end subroutine MatGetInfo
      subroutine MatLUFactor(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       IS c ! IS
       MatFactorInfo d (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatLUFactor
      subroutine MatILUFactor(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       IS c ! IS
       MatFactorInfo d (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatILUFactor
      subroutine MatLUFactorSymbolic(a,b,c,d,e,z)
       import tIS,tMat
       Mat a ! Mat
       Mat b ! Mat
       IS c ! IS
       IS d ! IS
       MatFactorInfo e (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatLUFactorSymbolic
      subroutine MatLUFactorNumeric(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       MatFactorInfo c (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatLUFactorNumeric
      subroutine MatCholeskyFactor(a,b,c,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       MatFactorInfo c (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatCholeskyFactor
      subroutine MatCholeskyFactorSymbolic(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       Mat b ! Mat
       IS c ! IS
       MatFactorInfo d (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatCholeskyFactorSymbolic
      subroutine MatCholeskyFactorNumeric(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       MatFactorInfo c (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatCholeskyFactorNumeric
      subroutine MatQRFactor(a,b,c,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       MatFactorInfo c (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatQRFactor
      subroutine MatQRFactorSymbolic(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       Mat b ! Mat
       IS c ! IS
       MatFactorInfo d (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatQRFactorSymbolic
      subroutine MatQRFactorNumeric(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       MatFactorInfo c (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatQRFactorNumeric
      subroutine MatSolve(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatSolve
      subroutine MatMatSolve(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatMatSolve
      subroutine MatMatSolveTranspose(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatMatSolveTranspose
      subroutine MatMatTransposeSolve(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatMatTransposeSolve
      subroutine MatForwardSolve(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatForwardSolve
      subroutine MatBackwardSolve(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatBackwardSolve
      subroutine MatSolveAdd(a,b,c,d,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       Vec d ! Vec
       PetscErrorCode z
       end subroutine MatSolveAdd
      subroutine MatSolveTranspose(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatSolveTranspose
      subroutine MatSolveTransposeAdd(a,b,c,d,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       Vec d ! Vec
       PetscErrorCode z
       end subroutine MatSolveTransposeAdd
      subroutine MatSOR(a,b,c,d,e,f,g,h,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscReal c ! PetscReal
       MatSORType d ! MatSORType
       PetscReal e ! PetscReal
       PetscInt f ! PetscInt
       PetscInt g ! PetscInt
       Vec h ! Vec
       PetscErrorCode z
       end subroutine MatSOR
      subroutine MatCopy(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       MatStructure c ! MatStructure
       PetscErrorCode z
       end subroutine MatCopy
      subroutine MatConvert(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       character(*) b ! MatType
       MatReuse c ! MatReuse
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatConvert
      subroutine MatFactorGetSolverType(a,b,z)
       import tMat
       Mat a ! Mat
       character(*) b ! MatSolverType
       PetscErrorCode z
       end subroutine MatFactorGetSolverType
      subroutine MatFactorGetCanUseOrdering(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatFactorGetCanUseOrdering
      subroutine MatFactorGetPreferredOrdering(a,b,c,z)
       import tMat
       Mat a ! Mat
       MatFactorType b ! MatFactorType
       character(*) c ! MatOrderingType
       PetscErrorCode z
       end subroutine MatFactorGetPreferredOrdering
      subroutine MatGetFactor(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       character(*) b ! MatSolverType
       MatFactorType c ! MatFactorType
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatGetFactor
      subroutine MatGetFactorAvailable(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       character(*) b ! MatSolverType
       MatFactorType c ! MatFactorType
       PetscBool d ! PetscBool
       PetscErrorCode z
       end subroutine MatGetFactorAvailable
      subroutine MatDuplicate(a,b,c,z)
       import tMat
       Mat a ! Mat
       MatDuplicateOption b ! MatDuplicateOption
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatDuplicate
      subroutine MatGetDiagonal(a,b,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscErrorCode z
       end subroutine MatGetDiagonal
      subroutine MatGetRowMin(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscInt c (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatGetRowMin
      subroutine MatGetRowMinAbs(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscInt c (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatGetRowMinAbs
      subroutine MatGetRowMax(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscInt c (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatGetRowMax
      subroutine MatGetRowMaxAbs(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscInt c (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatGetRowMaxAbs
      subroutine MatGetRowSumAbs(a,b,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscErrorCode z
       end subroutine MatGetRowSumAbs
      subroutine MatGetRowSum(a,b,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscErrorCode z
       end subroutine MatGetRowSum
      subroutine MatTransposeSetPrecursor(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatTransposeSetPrecursor
      subroutine MatTranspose(a,b,c,z)
       import tMat
       Mat a ! Mat
       MatReuse b ! MatReuse
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatTranspose
      subroutine MatTransposeSymbolic(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatTransposeSymbolic
      subroutine MatIsTranspose(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscReal c ! PetscReal
       PetscBool d ! PetscBool
       PetscErrorCode z
       end subroutine MatIsTranspose
      subroutine MatHermitianTranspose(a,b,c,z)
       import tMat
       Mat a ! Mat
       MatReuse b ! MatReuse
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatHermitianTranspose
      subroutine MatIsHermitianTranspose(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscReal c ! PetscReal
       PetscBool d ! PetscBool
       PetscErrorCode z
       end subroutine MatIsHermitianTranspose
      subroutine MatPermute(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       IS c ! IS
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatPermute
      subroutine MatEqual(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine MatEqual
      subroutine MatDiagonalScale(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatDiagonalScale
      subroutine MatScale(a,b,z)
       import tMat
       Mat a ! Mat
       PetscScalar b ! PetscScalar
       PetscErrorCode z
       end subroutine MatScale
      subroutine MatNorm(a,b,c,z)
       import tMat
       Mat a ! Mat
       NormType b ! NormType
       PetscReal c ! PetscReal
       PetscErrorCode z
       end subroutine MatNorm
      subroutine MatAssemblyBegin(a,b,z)
       import tMat
       Mat a ! Mat
       MatAssemblyType b ! MatAssemblyType
       PetscErrorCode z
       end subroutine MatAssemblyBegin
      subroutine MatAssembled(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatAssembled
      subroutine MatAssemblyEnd(a,b,z)
       import tMat
       Mat a ! Mat
       MatAssemblyType b ! MatAssemblyType
       PetscErrorCode z
       end subroutine MatAssemblyEnd
      subroutine MatSetOption(a,b,c,z)
       import tMat
       Mat a ! Mat
       MatOption b ! MatOption
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine MatSetOption
      subroutine MatGetOption(a,b,c,z)
       import tMat
       Mat a ! Mat
       MatOption b ! MatOption
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine MatGetOption
      subroutine MatZeroEntries(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatZeroEntries
      subroutine MatZeroRowsColumns(a,b,c,d,e,f,z)
       import tVec,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscScalar d ! PetscScalar
       Vec e ! Vec
       Vec f ! Vec
       PetscErrorCode z
       end subroutine MatZeroRowsColumns
      subroutine MatZeroRowsColumnsIS(a,b,c,d,e,z)
       import tIS,tVec,tMat
       Mat a ! Mat
       IS b ! IS
       PetscScalar c ! PetscScalar
       Vec d ! Vec
       Vec e ! Vec
       PetscErrorCode z
       end subroutine MatZeroRowsColumnsIS
      subroutine MatZeroRows(a,b,c,d,e,f,z)
       import tVec,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscScalar d ! PetscScalar
       Vec e ! Vec
       Vec f ! Vec
       PetscErrorCode z
       end subroutine MatZeroRows
      subroutine MatZeroRowsIS(a,b,c,d,e,z)
       import tIS,tVec,tMat
       Mat a ! Mat
       IS b ! IS
       PetscScalar c ! PetscScalar
       Vec d ! Vec
       Vec e ! Vec
       PetscErrorCode z
       end subroutine MatZeroRowsIS
      subroutine MatZeroRowsStencil(a,b,c,d,e,f,z)
       import tVec,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       MatStencil c (*) ! MatStencil
       PetscScalar d ! PetscScalar
       Vec e ! Vec
       Vec f ! Vec
       PetscErrorCode z
       end subroutine MatZeroRowsStencil
      subroutine MatZeroRowsColumnsStencil(a,b,c,d,e,f,z)
       import tVec,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       MatStencil c (*) ! MatStencil
       PetscScalar d ! PetscScalar
       Vec e ! Vec
       Vec f ! Vec
       PetscErrorCode z
       end subroutine MatZeroRowsColumnsStencil
      subroutine MatZeroRowsLocal(a,b,c,d,e,f,z)
       import tVec,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscScalar d ! PetscScalar
       Vec e ! Vec
       Vec f ! Vec
       PetscErrorCode z
       end subroutine MatZeroRowsLocal
      subroutine MatZeroRowsLocalIS(a,b,c,d,e,z)
       import tIS,tVec,tMat
       Mat a ! Mat
       IS b ! IS
       PetscScalar c ! PetscScalar
       Vec d ! Vec
       Vec e ! Vec
       PetscErrorCode z
       end subroutine MatZeroRowsLocalIS
      subroutine MatZeroRowsColumnsLocal(a,b,c,d,e,f,z)
       import tVec,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscScalar d ! PetscScalar
       Vec e ! Vec
       Vec f ! Vec
       PetscErrorCode z
       end subroutine MatZeroRowsColumnsLocal
      subroutine MatZeroRowsColumnsLocalIS(a,b,c,d,e,z)
       import tIS,tVec,tMat
       Mat a ! Mat
       IS b ! IS
       PetscScalar c ! PetscScalar
       Vec d ! Vec
       Vec e ! Vec
       PetscErrorCode z
       end subroutine MatZeroRowsColumnsLocalIS
      subroutine MatGetSize(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatGetSize
      subroutine MatGetLocalSize(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatGetLocalSize
      subroutine MatGetOwnershipRangeColumn(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatGetOwnershipRangeColumn
      subroutine MatGetOwnershipRange(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatGetOwnershipRange
      subroutine MatGetOwnershipIS(a,b,c,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       IS c ! IS
       PetscErrorCode z
       end subroutine MatGetOwnershipIS
      subroutine MatILUFactorSymbolic(a,b,c,d,e,z)
       import tIS,tMat
       Mat a ! Mat
       Mat b ! Mat
       IS c ! IS
       IS d ! IS
       MatFactorInfo e (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatILUFactorSymbolic
      subroutine MatICCFactorSymbolic(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       Mat b ! Mat
       IS c ! IS
       MatFactorInfo d (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatICCFactorSymbolic
      subroutine MatGetSeqNonzeroStructure(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatGetSeqNonzeroStructure
      subroutine MatIncreaseOverlap(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       IS c (*) ! IS
       PetscInt d ! PetscInt
       PetscErrorCode z
       end subroutine MatIncreaseOverlap
      subroutine MatIncreaseOverlapSplit(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       IS c (*) ! IS
       PetscInt d ! PetscInt
       PetscErrorCode z
       end subroutine MatIncreaseOverlapSplit
      subroutine MatGetBlockSize(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatGetBlockSize
      subroutine MatGetBlockSizes(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatGetBlockSizes
      subroutine MatSetBlockSize(a,b,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine MatSetBlockSize
      subroutine MatComputeVariableBlockEnvelope(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatComputeVariableBlockEnvelope
      subroutine MatInvertVariableBlockEnvelope(a,b,c,z)
       import tMat
       Mat a ! Mat
       MatReuse b ! MatReuse
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatInvertVariableBlockEnvelope
      subroutine MatSetVariableBlockSizes(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatSetVariableBlockSizes
      subroutine MatSetBlockSizes(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatSetBlockSizes
      subroutine MatSetBlockSizesFromMats(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatSetBlockSizesFromMats
      subroutine MatResidual(a,b,c,d,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       Vec d ! Vec
       PetscErrorCode z
       end subroutine MatResidual
      subroutine MatColoringPatch(a,b,c,d,e,z)
       import tISColoring,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       ISColoringValue d (*) ! ISColoringValue
       ISColoring e ! ISColoring
       PetscErrorCode z
       end subroutine MatColoringPatch
      subroutine MatSetUnfactored(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatSetUnfactored
      subroutine MatCreateSubMatrix(a,b,c,d,e,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       IS c ! IS
       MatReuse d ! MatReuse
       Mat e ! Mat
       PetscErrorCode z
       end subroutine MatCreateSubMatrix
      subroutine MatPropagateSymmetryOptions(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatPropagateSymmetryOptions
      subroutine MatStashSetInitialSize(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatStashSetInitialSize
      subroutine MatInterpolateAdd(a,b,c,d,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       Vec d ! Vec
       PetscErrorCode z
       end subroutine MatInterpolateAdd
      subroutine MatInterpolate(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatInterpolate
      subroutine MatRestrict(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatRestrict
      subroutine MatMatInterpolateAdd(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatMatInterpolateAdd
      subroutine MatMatInterpolate(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatMatInterpolate
      subroutine MatMatRestrict(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatMatRestrict
      subroutine MatGetNullSpace(a,b,z)
       import tMatNullSpace,tMat
       Mat a ! Mat
       MatNullSpace b ! MatNullSpace
       PetscErrorCode z
       end subroutine MatGetNullSpace
      subroutine MatSetNullSpace(a,b,z)
       import tMatNullSpace,tMat
       Mat a ! Mat
       MatNullSpace b ! MatNullSpace
       PetscErrorCode z
       end subroutine MatSetNullSpace
      subroutine MatGetTransposeNullSpace(a,b,z)
       import tMatNullSpace,tMat
       Mat a ! Mat
       MatNullSpace b ! MatNullSpace
       PetscErrorCode z
       end subroutine MatGetTransposeNullSpace
      subroutine MatSetTransposeNullSpace(a,b,z)
       import tMatNullSpace,tMat
       Mat a ! Mat
       MatNullSpace b ! MatNullSpace
       PetscErrorCode z
       end subroutine MatSetTransposeNullSpace
      subroutine MatSetNearNullSpace(a,b,z)
       import tMatNullSpace,tMat
       Mat a ! Mat
       MatNullSpace b ! MatNullSpace
       PetscErrorCode z
       end subroutine MatSetNearNullSpace
      subroutine MatGetNearNullSpace(a,b,z)
       import tMatNullSpace,tMat
       Mat a ! Mat
       MatNullSpace b ! MatNullSpace
       PetscErrorCode z
       end subroutine MatGetNearNullSpace
      subroutine MatICCFactor(a,b,c,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       MatFactorInfo c (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatICCFactor
      subroutine MatDiagonalScaleLocal(a,b,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscErrorCode z
       end subroutine MatDiagonalScaleLocal
      subroutine MatGetInertia(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscErrorCode z
       end subroutine MatGetInertia
      subroutine MatIsSymmetric(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine MatIsSymmetric
      subroutine MatIsHermitian(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine MatIsHermitian
      subroutine MatIsSymmetricKnown(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine MatIsSymmetricKnown
      subroutine MatIsSPDKnown(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine MatIsSPDKnown
      subroutine MatIsHermitianKnown(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine MatIsHermitianKnown
      subroutine MatIsStructurallySymmetric(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatIsStructurallySymmetric
      subroutine MatIsStructurallySymmetricKnown(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine MatIsStructurallySymmetricKnown
      subroutine MatStashGetInfo(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscErrorCode z
       end subroutine MatStashGetInfo
      subroutine MatCreateVecs(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatCreateVecs
      subroutine MatFactorInfoInitialize(a,z)
       MatFactorInfo a (*) ! MatFactorInfo
       PetscErrorCode z
       end subroutine MatFactorInfoInitialize
      subroutine MatFactorSetSchurIS(a,b,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       PetscErrorCode z
       end subroutine MatFactorSetSchurIS
      subroutine MatFactorCreateSchurComplement(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       MatFactorSchurStatus c ! MatFactorSchurStatus
       PetscErrorCode z
       end subroutine MatFactorCreateSchurComplement
      subroutine MatFactorGetSchurComplement(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       MatFactorSchurStatus c ! MatFactorSchurStatus
       PetscErrorCode z
       end subroutine MatFactorGetSchurComplement
      subroutine MatFactorRestoreSchurComplement(a,b,c,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       MatFactorSchurStatus c ! MatFactorSchurStatus
       PetscErrorCode z
       end subroutine MatFactorRestoreSchurComplement
      subroutine MatFactorSolveSchurComplementTranspose(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatFactorSolveSchurComplementTranspose
      subroutine MatFactorSolveSchurComplement(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       Vec c ! Vec
       PetscErrorCode z
       end subroutine MatFactorSolveSchurComplement
      subroutine MatFactorInvertSchurComplement(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatFactorInvertSchurComplement
      subroutine MatFactorFactorizeSchurComplement(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatFactorFactorizeSchurComplement
      subroutine MatPtAP(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       MatReuse c ! MatReuse
       PetscReal d ! PetscReal
       Mat e ! Mat
       PetscErrorCode z
       end subroutine MatPtAP
      subroutine MatRARt(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       MatReuse c ! MatReuse
       PetscReal d ! PetscReal
       Mat e ! Mat
       PetscErrorCode z
       end subroutine MatRARt
      subroutine MatMatMult(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       MatReuse c ! MatReuse
       PetscReal d ! PetscReal
       Mat e ! Mat
       PetscErrorCode z
       end subroutine MatMatMult
      subroutine MatMatTransposeMult(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       MatReuse c ! MatReuse
       PetscReal d ! PetscReal
       Mat e ! Mat
       PetscErrorCode z
       end subroutine MatMatTransposeMult
      subroutine MatTransposeMatMult(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       MatReuse c ! MatReuse
       PetscReal d ! PetscReal
       Mat e ! Mat
       PetscErrorCode z
       end subroutine MatTransposeMatMult
      subroutine MatMatMatMult(a,b,c,d,e,f,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       MatReuse d ! MatReuse
       PetscReal e ! PetscReal
       Mat f ! Mat
       PetscErrorCode z
       end subroutine MatMatMatMult
      subroutine MatCreateRedundantMatrix(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       integer c ! MPI_Comm
       MatReuse d ! MatReuse
       Mat e ! Mat
       PetscErrorCode z
       end subroutine MatCreateRedundantMatrix
      subroutine MatGetLocalSubMatrix(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       IS c ! IS
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatGetLocalSubMatrix
      subroutine MatRestoreLocalSubMatrix(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       IS c ! IS
       Mat d ! Mat
       PetscErrorCode z
       end subroutine MatRestoreLocalSubMatrix
      subroutine MatFindZeroDiagonals(a,b,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       PetscErrorCode z
       end subroutine MatFindZeroDiagonals
      subroutine MatFindOffBlockDiagonalEntries(a,b,z)
       import tIS,tMat
       Mat a ! Mat
       IS b ! IS
       PetscErrorCode z
       end subroutine MatFindOffBlockDiagonalEntries
      subroutine MatInvertVariableBlockDiagonal(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscScalar d (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatInvertVariableBlockDiagonal
      subroutine MatInvertBlockDiagonalMat(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatInvertBlockDiagonalMat
      subroutine MatTransposeColoringDestroy(a,z)
       import tMatTransposeColoring
       MatTransposeColoring a ! MatTransposeColoring
       PetscErrorCode z
       end subroutine MatTransposeColoringDestroy
      subroutine MatTransColoringApplySpToDen(a,b,c,z)
       import tMatTransposeColoring,tMat
       MatTransposeColoring a ! MatTransposeColoring
       Mat b ! Mat
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatTransColoringApplySpToDen
      subroutine MatTransColoringApplyDenToSp(a,b,c,z)
       import tMatTransposeColoring,tMat
       MatTransposeColoring a ! MatTransposeColoring
       Mat b ! Mat
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatTransColoringApplyDenToSp
      subroutine MatTransposeColoringCreate(a,b,c,z)
       import tMatTransposeColoring,tISColoring,tMat
       Mat a ! Mat
       ISColoring b ! ISColoring
       MatTransposeColoring c ! MatTransposeColoring
       PetscErrorCode z
       end subroutine MatTransposeColoringCreate
      subroutine MatGetNonzeroState(a,b,z)
       import tMat,tPetscObject
       Mat a ! Mat
       PetscObjectState b ! PetscObjectState
       PetscErrorCode z
       end subroutine MatGetNonzeroState
      subroutine MatCreateMPIMatConcatenateSeqMat(a,b,c,d,e,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       Mat b ! Mat
       PetscInt c ! PetscInt
       MatReuse d ! MatReuse
       Mat e ! Mat
       PetscErrorCode z
       end subroutine MatCreateMPIMatConcatenateSeqMat
      subroutine MatSubdomainsCreateCoalesce(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       IS d (*) ! IS
       PetscErrorCode z
       end subroutine MatSubdomainsCreateCoalesce
      subroutine MatGalerkin(a,b,c,d,e,f,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       MatReuse d ! MatReuse
       PetscReal e ! PetscReal
       Mat f ! Mat
       PetscErrorCode z
       end subroutine MatGalerkin
      subroutine MatHasOperation(a,b,c,z)
       import tMat
       Mat a ! Mat
       MatOperation b ! MatOperation
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine MatHasOperation
      subroutine MatHasCongruentLayouts(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatHasCongruentLayouts
      subroutine MatCreateGraph(a,b,c,d,e,f,g,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscBool c ! PetscBool
       PetscReal d ! PetscReal
       PetscInt e ! PetscInt
       PetscInt f (*) ! PetscInt
       Mat g ! Mat
       PetscErrorCode z
       end subroutine MatCreateGraph
      subroutine MatEliminateZeros(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatEliminateZeros
      subroutine MatFDColoringView(a,b,z)
       import tMatFDColoring,tPetscViewer
       MatFDColoring a ! MatFDColoring
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine MatFDColoringView
      subroutine MatFDColoringSetParameters(a,b,c,z)
       import tMatFDColoring
       MatFDColoring a ! MatFDColoring
       PetscReal b ! PetscReal
       PetscReal c ! PetscReal
       PetscErrorCode z
       end subroutine MatFDColoringSetParameters
      subroutine MatFDColoringSetBlockSize(a,b,c,z)
       import tMatFDColoring
       MatFDColoring a ! MatFDColoring
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatFDColoringSetBlockSize
      subroutine MatFDColoringSetUp(a,b,c,z)
       import tMatFDColoring,tISColoring,tMat
       Mat a ! Mat
       ISColoring b ! ISColoring
       MatFDColoring c ! MatFDColoring
       PetscErrorCode z
       end subroutine MatFDColoringSetUp
      subroutine MatFDColoringSetFromOptions(a,z)
       import tMatFDColoring
       MatFDColoring a ! MatFDColoring
       PetscErrorCode z
       end subroutine MatFDColoringSetFromOptions
      subroutine MatFDColoringSetType(a,b,z)
       import tMatFDColoring
       MatFDColoring a ! MatFDColoring
       character(*) b ! MatMFFDType
       PetscErrorCode z
       end subroutine MatFDColoringSetType
      subroutine MatFDColoringCreate(a,b,c,z)
       import tMatFDColoring,tISColoring,tMat
       Mat a ! Mat
       ISColoring b ! ISColoring
       MatFDColoring c ! MatFDColoring
       PetscErrorCode z
       end subroutine MatFDColoringCreate
      subroutine MatFDColoringDestroy(a,z)
       import tMatFDColoring
       MatFDColoring a ! MatFDColoring
       PetscErrorCode z
       end subroutine MatFDColoringDestroy
      subroutine MatAXPY(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscScalar b ! PetscScalar
       Mat c ! Mat
       MatStructure d ! MatStructure
       PetscErrorCode z
       end subroutine MatAXPY
      subroutine MatShift(a,b,z)
       import tMat
       Mat a ! Mat
       PetscScalar b ! PetscScalar
       PetscErrorCode z
       end subroutine MatShift
      subroutine MatDiagonalSet(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       InsertMode c ! InsertMode
       PetscErrorCode z
       end subroutine MatDiagonalSet
      subroutine MatAYPX(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscScalar b ! PetscScalar
       Mat c ! Mat
       MatStructure d ! MatStructure
       PetscErrorCode z
       end subroutine MatAYPX
      subroutine MatComputeOperator(a,b,c,z)
       import tMat
       Mat a ! Mat
       character(*) b ! MatType
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatComputeOperator
      subroutine MatComputeOperatorTranspose(a,b,c,z)
       import tMat
       Mat a ! Mat
       character(*) b ! MatType
       Mat c ! Mat
       PetscErrorCode z
       end subroutine MatComputeOperatorTranspose
      subroutine MatFilter(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscBool c ! PetscBool
       PetscBool d ! PetscBool
       PetscErrorCode z
       end subroutine MatFilter
      subroutine MatComputeBandwidth(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatComputeBandwidth
      subroutine MatGetColumnVector(a,b,c,z)
       import tVec,tMat
       Mat a ! Mat
       Vec b ! Vec
       PetscInt c ! PetscInt
       PetscErrorCode z
       end subroutine MatGetColumnVector
      subroutine MatGetColumnNorms(a,b,c,z)
       import tMat
       Mat a ! Mat
       NormType b ! NormType
       PetscReal c (*) ! PetscReal
       PetscErrorCode z
       end subroutine MatGetColumnNorms
      subroutine MatGetColumnSumsRealPart(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b (*) ! PetscReal
       PetscErrorCode z
       end subroutine MatGetColumnSumsRealPart
      subroutine MatGetColumnSumsImaginaryPart(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b (*) ! PetscReal
       PetscErrorCode z
       end subroutine MatGetColumnSumsImaginaryPart
      subroutine MatGetColumnSums(a,b,z)
       import tMat
       Mat a ! Mat
       PetscScalar b (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatGetColumnSums
      subroutine MatGetColumnMeansRealPart(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b (*) ! PetscReal
       PetscErrorCode z
       end subroutine MatGetColumnMeansRealPart
      subroutine MatGetColumnMeansImaginaryPart(a,b,z)
       import tMat
       Mat a ! Mat
       PetscReal b (*) ! PetscReal
       PetscErrorCode z
       end subroutine MatGetColumnMeansImaginaryPart
      subroutine MatGetColumnMeans(a,b,z)
       import tMat
       Mat a ! Mat
       PetscScalar b (*) ! PetscScalar
       PetscErrorCode z
       end subroutine MatGetColumnMeans
      subroutine MatGetColumnReductions(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscReal c (*) ! PetscReal
       PetscErrorCode z
       end subroutine MatGetColumnReductions
      subroutine MatCreateDenseFromVecType(a,b,c,d,e,f,g,h,i,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       character(*) b ! VecType
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       PetscInt g ! PetscInt
       PetscScalar h ! PetscScalar
       Mat i ! Mat
       PetscErrorCode z
       end subroutine MatCreateDenseFromVecType
      subroutine MatReorderForNonzeroDiagonal(a,b,c,d,z)
       import tIS,tMat
       Mat a ! Mat
       PetscReal b ! PetscReal
       IS c ! IS
       IS d ! IS
       PetscErrorCode z
       end subroutine MatReorderForNonzeroDiagonal
      subroutine MatCreate(a,b,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatCreate
      subroutine MatCreateFromOptions(a,b,c,d,e,f,g,h,z)
       import tMat
       MPI_Comm a ! MPI_Comm
       character(*) b ! char
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       PetscInt g ! PetscInt
       Mat h ! Mat
       PetscErrorCode z
       end subroutine MatCreateFromOptions
      subroutine MatSetErrorIfFailure(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatSetErrorIfFailure
      subroutine MatSetSizes(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscInt e ! PetscInt
       PetscErrorCode z
       end subroutine MatSetSizes
      subroutine MatSetFromOptions(a,z)
       import tMat
       Mat a ! Mat
       PetscErrorCode z
       end subroutine MatSetFromOptions
      subroutine MatXAIJSetPreallocation(a,b,c,d,e,f,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscInt c (*) ! PetscInt
       PetscInt d (*) ! PetscInt
       PetscInt e (*) ! PetscInt
       PetscInt f (*) ! PetscInt
       PetscErrorCode z
       end subroutine MatXAIJSetPreallocation
      subroutine MatHeaderReplace(a,b,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscErrorCode z
       end subroutine MatHeaderReplace
      subroutine MatBindToCPU(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatBindToCPU
      subroutine MatBoundToCPU(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatBoundToCPU
      subroutine MatSetValuesCOO(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscScalar b (*) ! PetscScalar
       InsertMode c ! InsertMode
       PetscErrorCode z
       end subroutine MatSetValuesCOO
      subroutine MatSetBindingPropagates(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatSetBindingPropagates
      subroutine MatGetBindingPropagates(a,b,z)
       import tMat
       Mat a ! Mat
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine MatGetBindingPropagates
      subroutine MatMultEqual(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscInt c ! PetscInt
       PetscBool d ! PetscBool
       PetscErrorCode z
       end subroutine MatMultEqual
      subroutine MatMultAddEqual(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscInt c ! PetscInt
       PetscBool d ! PetscBool
       PetscErrorCode z
       end subroutine MatMultAddEqual
      subroutine MatMultTransposeEqual(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscInt c ! PetscInt
       PetscBool d ! PetscBool
       PetscErrorCode z
       end subroutine MatMultTransposeEqual
      subroutine MatMultTransposeAddEqual(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscInt c ! PetscInt
       PetscBool d ! PetscBool
       PetscErrorCode z
       end subroutine MatMultTransposeAddEqual
      subroutine MatMultHermitianTransposeEqual(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscInt c ! PetscInt
       PetscBool d ! PetscBool
       PetscErrorCode z
       end subroutine MatMultHermitianTransposeEqual
      subroutine MatMultHermitianTransposeAddEqual(a,b,c,d,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       PetscInt c ! PetscInt
       PetscBool d ! PetscBool
       PetscErrorCode z
       end subroutine MatMultHermitianTransposeAddEqual
      subroutine MatMatMultEqual(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       PetscInt d ! PetscInt
       PetscBool e ! PetscBool
       PetscErrorCode z
       end subroutine MatMatMultEqual
      subroutine MatTransposeMatMultEqual(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       PetscInt d ! PetscInt
       PetscBool e ! PetscBool
       PetscErrorCode z
       end subroutine MatTransposeMatMultEqual
      subroutine MatMatTransposeMultEqual(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       PetscInt d ! PetscInt
       PetscBool e ! PetscBool
       PetscErrorCode z
       end subroutine MatMatTransposeMultEqual
      subroutine MatPtAPMultEqual(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       PetscInt d ! PetscInt
       PetscBool e ! PetscBool
       PetscErrorCode z
       end subroutine MatPtAPMultEqual
      subroutine MatRARtMultEqual(a,b,c,d,e,z)
       import tMat
       Mat a ! Mat
       Mat b ! Mat
       Mat c ! Mat
       PetscInt d ! PetscInt
       PetscBool e ! PetscBool
       PetscErrorCode z
       end subroutine MatRARtMultEqual
      subroutine MatIsLinear(a,b,c,z)
       import tMat
       Mat a ! Mat
       PetscInt b ! PetscInt
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine MatIsLinear
      subroutine MatSetHPL(a,b,z)
       import tMat
       Mat a ! Mat
       integer b ! int
       PetscErrorCode z
       end subroutine MatSetHPL
