interface subroutine PetscSFBcastBegin(sf, unit, rarray, larray, op, ierr) use, intrinsic :: ISO_C_binding #if defined(PETSC_USE_MPI_F08) import tPetscSF, MPI_Datatype, MPI_Op #else import tPetscSF #endif PetscSF :: sf MPIU_Datatype :: unit MPIU_Op :: op type(*) :: rarray(:) type(*) :: larray(:) PetscErrorCode :: ierr end subroutine PetscSFBcastBegin subroutine PetscSFBcastEnd(sf, unit, rarray, larray, op, ierr) use, intrinsic :: ISO_C_binding #if defined(PETSC_USE_MPI_F08) import tPetscSF, MPI_Datatype, MPI_Op #else import tPetscSF #endif PetscSF :: sf MPIU_Datatype :: unit MPIU_Op :: op type(*) :: rarray(:) type(*) :: larray(:) PetscErrorCode :: ierr end subroutine PetscSFBcastEnd subroutine PetscSFReduceBegin(sf, unit, larray, rarray, op, ierr) use, intrinsic :: ISO_C_binding #if defined(PETSC_USE_MPI_F08) import tPetscSF, MPI_Datatype, MPI_Op #else import tPetscSF #endif PetscSF :: sf MPIU_Datatype :: unit MPIU_Op :: op type(*) :: larray(:) type(*) :: rarray(:) PetscErrorCode :: ierr end subroutine PetscSFReduceBegin subroutine PetscSFReduceEnd(sf, unit, larray, rarray, op, ierr) use, intrinsic :: ISO_C_binding #if defined(PETSC_USE_MPI_F08) import tPetscSF, MPI_Datatype, MPI_Op #else import tPetscSF #endif PetscSF :: sf MPIU_Datatype :: unit MPIU_Op :: op type(*) :: larray(:) type(*) :: rarray(:) PetscErrorCode :: ierr end subroutine PetscSFReduceEnd subroutine VecRestoreOwnershipRanges(v, ptr, ierr) use, intrinsic :: ISO_C_binding import tVec Vec :: v PetscInt, pointer :: ptr(:) PetscErrorCode, intent(out) :: ierr end subroutine VecRestoreOwnershipRanges subroutine PetscSFRestoreGraph(sf, nroots, nleaves, ilocal, iremote, ierr) use, intrinsic :: ISO_C_binding import tPetscSF, sPetscSFNode PetscSF :: sf PetscInt :: nroots, nleaves PetscInt, pointer :: ilocal(:) type(sPetscSFNode), pointer :: iremote(:) PetscErrorCode :: ierr end subroutine PetscSFRestoreGraph subroutine VecRestoreValuesSection(v, s, p, va, ierr) use, intrinsic :: ISO_C_binding import tVec, tPetscSection PetscScalar, pointer :: va(:) PetscErrorCode ierr Vec v PetscSection s PetscInt p end subroutine VecRestoreValuesSection end interface #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) !DEC$ ATTRIBUTES DLLEXPORT::PetscSFBcastBegin !DEC$ ATTRIBUTES DLLEXPORT::PetscSFBcastEnd !DEC$ ATTRIBUTES DLLEXPORT::PetscSFReduceBegin !DEC$ ATTRIBUTES DLLEXPORT::PetscSFReduceEnd !DEC$ ATTRIBUTES DLLEXPORT::VecRestoreOwnershipRanges !DEC$ ATTRIBUTES DLLEXPORT::PetscSFRestoreGraph !DEC$ ATTRIBUTES DLLEXPORT::VecRestoreValuesSection #endif