      Interface
        Subroutine DMSwarmGetField(dm, fieldname, blocksize, dtype, data, ierr)
          use, intrinsic :: ISO_C_binding
          use petscsys, only: ePetscDataType
          import tDM
          DM dm
          character(len=*) :: fieldname
          PetscInt blocksize
          PetscDataType dtype
          PetscScalar, pointer :: data(:)
          PetscErrorCode ierr
        End Subroutine
      End Interface

      Interface
        Subroutine DMSwarmRestoreField(dm, fieldname, blocksize, dtype, data, ierr)
          use, intrinsic :: ISO_C_binding
          use petscsys, only: ePetscDataType
          import tDM
          DM dm
          character(len=*) :: fieldname
          PetscInt blocksize
          PetscDataType dtype
          PetscScalar, pointer :: data(:)
          PetscErrorCode ierr
        End Subroutine
      End Interface
