102c639afSMartin Diehlinterface 26dd63270SBarry Smith subroutine PetscSFBcastBegin(sf, unit, rarray, larray, op, ierr) 3fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 4b06eb4cdSBarry Smith#if defined(PETSC_USE_MPI_F08) 5b06eb4cdSBarry Smith import tPetscSF, MPI_Datatype, MPI_Op 6b06eb4cdSBarry Smith#else 76dd63270SBarry Smith import tPetscSF 8b06eb4cdSBarry Smith#endif 96dd63270SBarry Smith PetscSF :: sf 10b06eb4cdSBarry Smith MPIU_Datatype :: unit 11b06eb4cdSBarry Smith MPIU_Op :: op 126dd63270SBarry Smith type(*) :: rarray(:) 136dd63270SBarry Smith type(*) :: larray(:) 146dd63270SBarry Smith PetscErrorCode :: ierr 1502c639afSMartin Diehl end subroutine PetscSFBcastBegin 166dd63270SBarry Smith 176dd63270SBarry Smith subroutine PetscSFBcastEnd(sf, unit, rarray, larray, op, ierr) 18fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 19b06eb4cdSBarry Smith#if defined(PETSC_USE_MPI_F08) 20b06eb4cdSBarry Smith import tPetscSF, MPI_Datatype, MPI_Op 21b06eb4cdSBarry Smith#else 226dd63270SBarry Smith import tPetscSF 23b06eb4cdSBarry Smith#endif 246dd63270SBarry Smith PetscSF :: sf 25b06eb4cdSBarry Smith MPIU_Datatype :: unit 26b06eb4cdSBarry Smith MPIU_Op :: op 276dd63270SBarry Smith type(*) :: rarray(:) 286dd63270SBarry Smith type(*) :: larray(:) 296dd63270SBarry Smith PetscErrorCode :: ierr 3002c639afSMartin Diehl end subroutine PetscSFBcastEnd 316dd63270SBarry Smith 326dd63270SBarry Smith subroutine PetscSFReduceBegin(sf, unit, larray, rarray, op, ierr) 33fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 34b06eb4cdSBarry Smith#if defined(PETSC_USE_MPI_F08) 35b06eb4cdSBarry Smith import tPetscSF, MPI_Datatype, MPI_Op 36b06eb4cdSBarry Smith#else 376dd63270SBarry Smith import tPetscSF 38b06eb4cdSBarry Smith#endif 396dd63270SBarry Smith PetscSF :: sf 40b06eb4cdSBarry Smith MPIU_Datatype :: unit 41b06eb4cdSBarry Smith MPIU_Op :: op 426dd63270SBarry Smith type(*) :: larray(:) 436dd63270SBarry Smith type(*) :: rarray(:) 446dd63270SBarry Smith PetscErrorCode :: ierr 4502c639afSMartin Diehl end subroutine PetscSFReduceBegin 466dd63270SBarry Smith 476dd63270SBarry Smith subroutine PetscSFReduceEnd(sf, unit, larray, rarray, op, ierr) 48fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 49b06eb4cdSBarry Smith#if defined(PETSC_USE_MPI_F08) 50b06eb4cdSBarry Smith import tPetscSF, MPI_Datatype, MPI_Op 51b06eb4cdSBarry Smith#else 526dd63270SBarry Smith import tPetscSF 53b06eb4cdSBarry Smith#endif 546dd63270SBarry Smith PetscSF :: sf 55b06eb4cdSBarry Smith MPIU_Datatype :: unit 56b06eb4cdSBarry Smith MPIU_Op :: op 576dd63270SBarry Smith type(*) :: larray(:) 586dd63270SBarry Smith type(*) :: rarray(:) 596dd63270SBarry Smith PetscErrorCode :: ierr 6002c639afSMartin Diehl end subroutine PetscSFReduceEnd 616dd63270SBarry Smith 626dd63270SBarry Smith subroutine VecRestoreOwnershipRanges(v, ptr, ierr) 63fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 646dd63270SBarry Smith import tVec 6511105114SMartin Diehl Vec :: v 666dd63270SBarry Smith PetscInt, pointer :: ptr(:) 6711105114SMartin Diehl PetscErrorCode, intent(out) :: ierr 686dd63270SBarry Smith end subroutine VecRestoreOwnershipRanges 696dd63270SBarry Smith 706dd63270SBarry Smith subroutine PetscSFRestoreGraph(sf, nroots, nleaves, ilocal, iremote, ierr) 71fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 726dd63270SBarry Smith import tPetscSF, sPetscSFNode 736dd63270SBarry Smith PetscSF :: sf 746dd63270SBarry Smith PetscInt :: nroots, nleaves 756dd63270SBarry Smith PetscInt, pointer :: ilocal(:) 766dd63270SBarry Smith type(sPetscSFNode), pointer :: iremote(:) 776dd63270SBarry Smith PetscErrorCode :: ierr 7802c639afSMartin Diehl end subroutine PetscSFRestoreGraph 796dd63270SBarry Smith 8002c639afSMartin Diehl subroutine VecRestoreValuesSection(v, s, p, va, ierr) 81fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 826dd63270SBarry Smith import tVec, tPetscSection 836dd63270SBarry Smith PetscScalar, pointer :: va(:) 846dd63270SBarry Smith PetscErrorCode ierr 856dd63270SBarry Smith Vec v 866dd63270SBarry Smith PetscSection s 876dd63270SBarry Smith PetscInt p 88*3d1372b2SMartin Diehl end subroutine VecRestoreValuesSection 8902c639afSMartin Diehlend interface 90*3d1372b2SMartin Diehl 91*3d1372b2SMartin Diehl#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 92*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::PetscSFBcastBegin 93*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::PetscSFBcastEnd 94*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::PetscSFReduceBegin 95*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::PetscSFReduceEnd 96*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::VecRestoreOwnershipRanges 97*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::PetscSFRestoreGraph 98*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::VecRestoreValuesSection 99*3d1372b2SMartin Diehl#endif 100