      subroutine PetscDualSpaceLagrangeGetContinuity(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceLagrangeGetContinuity
      subroutine PetscDualSpaceLagrangeSetContinuity(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceLagrangeSetContinuity
      subroutine PetscDualSpaceLagrangeGetTensor(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceLagrangeGetTensor
      subroutine PetscDualSpaceLagrangeSetTensor(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceLagrangeSetTensor
      subroutine PetscDualSpaceLagrangeGetTrimmed(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceLagrangeGetTrimmed
      subroutine PetscDualSpaceLagrangeSetTrimmed(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceLagrangeSetTrimmed
      subroutine PetscDualSpaceLagrangeGetNodeType(a,b,c,d,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscDTNodeType b ! PetscDTNodeType
       PetscBool c ! PetscBool
       PetscReal d ! PetscReal
       PetscErrorCode z
       end subroutine PetscDualSpaceLagrangeGetNodeType
      subroutine PetscDualSpaceLagrangeSetNodeType(a,b,c,d,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscDTNodeType b ! PetscDTNodeType
       PetscBool c ! PetscBool
       PetscReal d ! PetscReal
       PetscErrorCode z
       end subroutine PetscDualSpaceLagrangeSetNodeType
      subroutine PetscDualSpaceLagrangeGetUseMoments(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceLagrangeGetUseMoments
      subroutine PetscDualSpaceLagrangeSetUseMoments(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceLagrangeSetUseMoments
      subroutine PetscDualSpaceLagrangeGetMomentOrder(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceLagrangeGetMomentOrder
      subroutine PetscDualSpaceLagrangeSetMomentOrder(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceLagrangeSetMomentOrder
      subroutine PetscDualSpaceRefinedSetCellSpaces(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscDualSpace b (*) ! PetscDualSpace
       PetscErrorCode z
       end subroutine PetscDualSpaceRefinedSetCellSpaces
      subroutine PetscDualSpaceSimpleSetDimension(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceSimpleSetDimension
      subroutine PetscDualSpaceSimpleSetFunctional(a,b,c,z)
       import tPetscDualSpace,tPetscQuadrature
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscQuadrature c ! PetscQuadrature
       PetscErrorCode z
       end subroutine PetscDualSpaceSimpleSetFunctional
      subroutine PetscDualSpaceSumGetNumSubspaces(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceSumGetNumSubspaces
      subroutine PetscDualSpaceSumSetNumSubspaces(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceSumSetNumSubspaces
      subroutine PetscDualSpaceSumGetConcatenate(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceSumGetConcatenate
      subroutine PetscDualSpaceSumSetConcatenate(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceSumSetConcatenate
      subroutine PetscDualSpaceSumGetSubspace(a,b,c,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscDualSpace c ! PetscDualSpace
       PetscErrorCode z
       end subroutine PetscDualSpaceSumGetSubspace
      subroutine PetscDualSpaceSumSetSubspace(a,b,c,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscDualSpace c ! PetscDualSpace
       PetscErrorCode z
       end subroutine PetscDualSpaceSumSetSubspace
      subroutine PetscDualSpaceSumSetInterleave(a,b,c,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscBool b ! PetscBool
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceSumSetInterleave
      subroutine PetscDualSpaceSumGetInterleave(a,b,c,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscBool b ! PetscBool
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceSumGetInterleave
      subroutine PetscDualSpaceCreateSum(a,b,c,d,z)
       import tPetscDualSpace
       PetscInt a ! PetscInt
       PetscDualSpace b (*) ! PetscDualSpace
       PetscBool c ! PetscBool
       PetscDualSpace d ! PetscDualSpace
       PetscErrorCode z
       end subroutine PetscDualSpaceCreateSum
      subroutine PetscDualSpaceSetType(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       character(*) b ! PetscDualSpaceType
       PetscErrorCode z
       end subroutine PetscDualSpaceSetType
      subroutine PetscDualSpaceGetType(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       character(*) b ! PetscDualSpaceType
       PetscErrorCode z
       end subroutine PetscDualSpaceGetType
#if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
      subroutine PetscDualSpaceViewFromOptions(a,b,c,z)
       import tPetscDualSpace,tPetscObject
       PetscDualSpace a ! PetscDualSpace
       type(*) b ! PetscObject
       character(*) c (*) ! char
       PetscErrorCode z
       end subroutine PetscDualSpaceViewFromOptions
#endif
      subroutine PetscDualSpaceView(a,b,z)
       import tPetscDualSpace,tPetscViewer
       PetscDualSpace a ! PetscDualSpace
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine PetscDualSpaceView
      subroutine PetscDualSpaceSetFromOptions(a,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscErrorCode z
       end subroutine PetscDualSpaceSetFromOptions
      subroutine PetscDualSpaceSetUp(a,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscErrorCode z
       end subroutine PetscDualSpaceSetUp
      subroutine PetscDualSpaceDestroy(a,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscErrorCode z
       end subroutine PetscDualSpaceDestroy
      subroutine PetscDualSpaceCreate(a,b,z)
       import tPetscDualSpace
       MPI_Comm a ! MPI_Comm
       PetscDualSpace b ! PetscDualSpace
       PetscErrorCode z
       end subroutine PetscDualSpaceCreate
      subroutine PetscDualSpaceDuplicate(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscDualSpace b ! PetscDualSpace
       PetscErrorCode z
       end subroutine PetscDualSpaceDuplicate
      subroutine PetscDualSpaceGetDM(a,b,z)
       import tDM,tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       DM b ! DM
       PetscErrorCode z
       end subroutine PetscDualSpaceGetDM
      subroutine PetscDualSpaceSetDM(a,b,z)
       import tDM,tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       DM b ! DM
       PetscErrorCode z
       end subroutine PetscDualSpaceSetDM
      subroutine PetscDualSpaceGetOrder(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceGetOrder
      subroutine PetscDualSpaceSetOrder(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceSetOrder
      subroutine PetscDualSpaceGetNumComponents(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceGetNumComponents
      subroutine PetscDualSpaceSetNumComponents(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceSetNumComponents
      subroutine PetscDualSpaceGetFunctional(a,b,c,z)
       import tPetscDualSpace,tPetscQuadrature
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscQuadrature c ! PetscQuadrature
       PetscErrorCode z
       end subroutine PetscDualSpaceGetFunctional
      subroutine PetscDualSpaceGetDimension(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceGetDimension
      subroutine PetscDualSpaceGetInteriorDimension(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceGetInteriorDimension
      subroutine PetscDualSpaceGetUniform(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceGetUniform
      subroutine PetscDualSpaceGetSection(a,b,z)
       import tPetscSection,tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscSection b ! PetscSection
       PetscErrorCode z
       end subroutine PetscDualSpaceGetSection
      subroutine PetscDualSpaceGetInteriorSection(a,b,z)
       import tPetscSection,tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscSection b ! PetscSection
       PetscErrorCode z
       end subroutine PetscDualSpaceGetInteriorSection
      subroutine PetscDualSpaceApplyAll(a,b,c,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscScalar b ! PetscScalar
       PetscScalar c ! PetscScalar
       PetscErrorCode z
       end subroutine PetscDualSpaceApplyAll
      subroutine PetscDualSpaceApplyInterior(a,b,c,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscScalar b ! PetscScalar
       PetscScalar c ! PetscScalar
       PetscErrorCode z
       end subroutine PetscDualSpaceApplyInterior
      subroutine PetscDualSpaceApplyAllDefault(a,b,c,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscScalar b ! PetscScalar
       PetscScalar c ! PetscScalar
       PetscErrorCode z
       end subroutine PetscDualSpaceApplyAllDefault
      subroutine PetscDualSpaceApplyInteriorDefault(a,b,c,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscScalar b ! PetscScalar
       PetscScalar c ! PetscScalar
       PetscErrorCode z
       end subroutine PetscDualSpaceApplyInteriorDefault
      subroutine PetscDualSpaceGetAllData(a,b,c,z)
       import tMat,tPetscQuadrature,tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscQuadrature b ! PetscQuadrature
       Mat c ! Mat
       PetscErrorCode z
       end subroutine PetscDualSpaceGetAllData
      subroutine PetscDualSpaceCreateAllDataDefault(a,b,c,z)
       import tMat,tPetscQuadrature,tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscQuadrature b ! PetscQuadrature
       Mat c ! Mat
       PetscErrorCode z
       end subroutine PetscDualSpaceCreateAllDataDefault
      subroutine PetscDualSpaceGetInteriorData(a,b,c,z)
       import tMat,tPetscQuadrature,tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscQuadrature b ! PetscQuadrature
       Mat c ! Mat
       PetscErrorCode z
       end subroutine PetscDualSpaceGetInteriorData
      subroutine PetscDualSpaceCreateInteriorDataDefault(a,b,c,z)
       import tMat,tPetscQuadrature,tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscQuadrature b ! PetscQuadrature
       Mat c ! Mat
       PetscErrorCode z
       end subroutine PetscDualSpaceCreateInteriorDataDefault
      subroutine PetscDualSpaceEqual(a,b,c,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscDualSpace b ! PetscDualSpace
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine PetscDualSpaceEqual
      subroutine PetscDualSpaceGetHeightSubspace(a,b,c,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscDualSpace c ! PetscDualSpace
       PetscErrorCode z
       end subroutine PetscDualSpaceGetHeightSubspace
      subroutine PetscDualSpaceGetPointSubspace(a,b,c,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscDualSpace c ! PetscDualSpace
       PetscErrorCode z
       end subroutine PetscDualSpaceGetPointSubspace
      subroutine PetscDualSpaceGetFormDegree(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceGetFormDegree
      subroutine PetscDualSpaceSetFormDegree(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceSetFormDegree
      subroutine PetscDualSpaceGetDeRahm(a,b,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscDualSpaceGetDeRahm
      subroutine PetscDualSpaceTransform(a,b,c,d,e,f,g,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscDualSpaceTransformType b ! PetscDualSpaceTransformType
       PetscBool c ! PetscBool
       PetscFEGeom d ! PetscFEGeom
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       PetscScalar g (*) ! PetscScalar
       PetscErrorCode z
       end subroutine PetscDualSpaceTransform
      subroutine PetscDualSpaceTransformGradient(a,b,c,d,e,f,g,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscDualSpaceTransformType b ! PetscDualSpaceTransformType
       PetscBool c ! PetscBool
       PetscFEGeom d ! PetscFEGeom
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       PetscScalar g (*) ! PetscScalar
       PetscErrorCode z
       end subroutine PetscDualSpaceTransformGradient
      subroutine PetscDualSpaceTransformHessian(a,b,c,d,e,f,g,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscDualSpaceTransformType b ! PetscDualSpaceTransformType
       PetscBool c ! PetscBool
       PetscFEGeom d ! PetscFEGeom
       PetscInt e ! PetscInt
       PetscInt f ! PetscInt
       PetscScalar g (*) ! PetscScalar
       PetscErrorCode z
       end subroutine PetscDualSpaceTransformHessian
      subroutine PetscDualSpacePullback(a,b,c,d,e,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscFEGeom b ! PetscFEGeom
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscScalar e (*) ! PetscScalar
       PetscErrorCode z
       end subroutine PetscDualSpacePullback
      subroutine PetscDualSpacePushforward(a,b,c,d,e,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscFEGeom b ! PetscFEGeom
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscScalar e (*) ! PetscScalar
       PetscErrorCode z
       end subroutine PetscDualSpacePushforward
      subroutine PetscDualSpacePushforwardGradient(a,b,c,d,e,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscFEGeom b ! PetscFEGeom
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscScalar e (*) ! PetscScalar
       PetscErrorCode z
       end subroutine PetscDualSpacePushforwardGradient
      subroutine PetscDualSpacePushforwardHessian(a,b,c,d,e,z)
       import tPetscDualSpace
       PetscDualSpace a ! PetscDualSpace
       PetscFEGeom b ! PetscFEGeom
       PetscInt c ! PetscInt
       PetscInt d ! PetscInt
       PetscScalar e (*) ! PetscScalar
       PetscErrorCode z
       end subroutine PetscDualSpacePushforwardHessian
