      subroutine PetscLimiterSetType(a,b,z)
       import tPetscLimiter
       PetscLimiter a ! PetscLimiter
       character(*) b ! PetscLimiterType
       PetscErrorCode z
       end subroutine PetscLimiterSetType
      subroutine PetscLimiterGetType(a,b,z)
       import tPetscLimiter
       PetscLimiter a ! PetscLimiter
       character(*) b ! PetscLimiterType
       PetscErrorCode z
       end subroutine PetscLimiterGetType
#if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
      subroutine PetscLimiterViewFromOptions(a,b,c,z)
       import tPetscLimiter,tPetscObject
       PetscLimiter a ! PetscLimiter
       type(*) b ! PetscObject
       character(*) c (*) ! char
       PetscErrorCode z
       end subroutine PetscLimiterViewFromOptions
#endif
      subroutine PetscLimiterView(a,b,z)
       import tPetscLimiter,tPetscViewer
       PetscLimiter a ! PetscLimiter
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine PetscLimiterView
      subroutine PetscLimiterSetFromOptions(a,z)
       import tPetscLimiter
       PetscLimiter a ! PetscLimiter
       PetscErrorCode z
       end subroutine PetscLimiterSetFromOptions
      subroutine PetscLimiterSetUp(a,z)
       import tPetscLimiter
       PetscLimiter a ! PetscLimiter
       PetscErrorCode z
       end subroutine PetscLimiterSetUp
      subroutine PetscLimiterDestroy(a,z)
       import tPetscLimiter
       PetscLimiter a ! PetscLimiter
       PetscErrorCode z
       end subroutine PetscLimiterDestroy
      subroutine PetscLimiterCreate(a,b,z)
       import tPetscLimiter
       MPI_Comm a ! MPI_Comm
       PetscLimiter b ! PetscLimiter
       PetscErrorCode z
       end subroutine PetscLimiterCreate
      subroutine PetscLimiterLimit(a,b,c,z)
       import tPetscLimiter
       PetscLimiter a ! PetscLimiter
       PetscReal b ! PetscReal
       PetscReal c ! PetscReal
       PetscErrorCode z
       end subroutine PetscLimiterLimit
      subroutine PetscFVSetType(a,b,z)
       import tPetscFV
       PetscFV a ! PetscFV
       character(*) b ! PetscFVType
       PetscErrorCode z
       end subroutine PetscFVSetType
      subroutine PetscFVGetType(a,b,z)
       import tPetscFV
       PetscFV a ! PetscFV
       character(*) b ! PetscFVType
       PetscErrorCode z
       end subroutine PetscFVGetType
#if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
      subroutine PetscFVViewFromOptions(a,b,c,z)
       import tPetscFV,tPetscObject
       PetscFV a ! PetscFV
       type(*) b ! PetscObject
       character(*) c (*) ! char
       PetscErrorCode z
       end subroutine PetscFVViewFromOptions
#endif
      subroutine PetscFVView(a,b,z)
       import tPetscFV,tPetscViewer
       PetscFV a ! PetscFV
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine PetscFVView
      subroutine PetscFVSetFromOptions(a,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscErrorCode z
       end subroutine PetscFVSetFromOptions
      subroutine PetscFVSetUp(a,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscErrorCode z
       end subroutine PetscFVSetUp
      subroutine PetscFVDestroy(a,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscErrorCode z
       end subroutine PetscFVDestroy
      subroutine PetscFVCreate(a,b,z)
       import tPetscFV
       MPI_Comm a ! MPI_Comm
       PetscFV b ! PetscFV
       PetscErrorCode z
       end subroutine PetscFVCreate
      subroutine PetscFVSetLimiter(a,b,z)
       import tPetscFV,tPetscLimiter
       PetscFV a ! PetscFV
       PetscLimiter b ! PetscLimiter
       PetscErrorCode z
       end subroutine PetscFVSetLimiter
      subroutine PetscFVGetLimiter(a,b,z)
       import tPetscFV,tPetscLimiter
       PetscFV a ! PetscFV
       PetscLimiter b ! PetscLimiter
       PetscErrorCode z
       end subroutine PetscFVGetLimiter
      subroutine PetscFVSetNumComponents(a,b,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscFVSetNumComponents
      subroutine PetscFVGetNumComponents(a,b,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscFVGetNumComponents
      subroutine PetscFVSetComponentName(a,b,c,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscInt b ! PetscInt
       character(*) c ! char
       PetscErrorCode z
       end subroutine PetscFVSetComponentName
      subroutine PetscFVGetComponentName(a,b,c,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscInt b ! PetscInt
       character(*) c (*) ! char
       PetscErrorCode z
       end subroutine PetscFVGetComponentName
      subroutine PetscFVSetSpatialDimension(a,b,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscFVSetSpatialDimension
      subroutine PetscFVGetSpatialDimension(a,b,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscFVGetSpatialDimension
      subroutine PetscFVSetComputeGradients(a,b,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscFVSetComputeGradients
      subroutine PetscFVGetComputeGradients(a,b,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscFVGetComputeGradients
      subroutine PetscFVSetQuadrature(a,b,z)
       import tPetscFV,tPetscQuadrature
       PetscFV a ! PetscFV
       PetscQuadrature b ! PetscQuadrature
       PetscErrorCode z
       end subroutine PetscFVSetQuadrature
      subroutine PetscFVGetQuadrature(a,b,z)
       import tPetscFV,tPetscQuadrature
       PetscFV a ! PetscFV
       PetscQuadrature b ! PetscQuadrature
       PetscErrorCode z
       end subroutine PetscFVGetQuadrature
      subroutine PetscFVCreateDualSpace(a,b,z)
       import tPetscFV
       PetscFV a ! PetscFV
       DMPolytopeType b ! DMPolytopeType
       PetscErrorCode z
       end subroutine PetscFVCreateDualSpace
      subroutine PetscFVGetDualSpace(a,b,z)
       import tPetscFV,tPetscDualSpace
       PetscFV a ! PetscFV
       PetscDualSpace b ! PetscDualSpace
       PetscErrorCode z
       end subroutine PetscFVGetDualSpace
      subroutine PetscFVSetDualSpace(a,b,z)
       import tPetscFV,tPetscDualSpace
       PetscFV a ! PetscFV
       PetscDualSpace b ! PetscDualSpace
       PetscErrorCode z
       end subroutine PetscFVSetDualSpace
      subroutine PetscFVComputeGradient(a,b,c,d,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscInt b ! PetscInt
       PetscScalar c (*) ! PetscScalar
       PetscScalar d (*) ! PetscScalar
       PetscErrorCode z
       end subroutine PetscFVComputeGradient
      subroutine PetscFVClone(a,b,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscFV b ! PetscFV
       PetscErrorCode z
       end subroutine PetscFVClone
      subroutine PetscFVRefine(a,b,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscFV b ! PetscFV
       PetscErrorCode z
       end subroutine PetscFVRefine
      subroutine PetscFVLeastSquaresSetMaxFaces(a,b,z)
       import tPetscFV
       PetscFV a ! PetscFV
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscFVLeastSquaresSetMaxFaces
