1interface 2 subroutine DMSwarmGetField(dm, fieldname, blocksize, dtype, data, ierr) 3 use, intrinsic :: ISO_C_binding 4 use petscsys, only: ePetscDataType 5 import tDM 6 DM dm 7 character(len=*) :: fieldname 8 PetscInt blocksize 9 PetscDataType dtype 10 PetscScalar, pointer :: data(:) 11 PetscErrorCode, intent(out) :: ierr 12 end subroutine 13 14 subroutine DMSwarmRestoreField(dm, fieldname, blocksize, dtype, data, ierr) 15 use, intrinsic :: ISO_C_binding 16 use petscsys, only: ePetscDataType 17 import tDM 18 DM dm 19 character(len=*) :: fieldname 20 PetscInt blocksize 21 PetscDataType dtype 22 PetscScalar, pointer :: data(:) 23 PetscErrorCode, intent(out) :: ierr 24 end subroutine 25end interface 26 27#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 28!DEC$ ATTRIBUTES DLLEXPORT::DMSwarmGetField 29!DEC$ ATTRIBUTES DLLEXPORT::DMSwarmRestoreField 30#endif 31