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