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 62*0da4d79bSMartin Diehl subroutine VecRestoreOwnershipRanges(x, ranges, ierr) 63fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 646dd63270SBarry Smith import tVec 65*0da4d79bSMartin Diehl Vec :: x 66*0da4d79bSMartin Diehl PetscInt, pointer :: ranges(:) 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 80*0da4d79bSMartin Diehl subroutine VecRestoreValuesSection(v, s, point, values, ierr) 81fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 826dd63270SBarry Smith import tVec, tPetscSection 83*0da4d79bSMartin Diehl PetscScalar, pointer :: values(:) 84*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 856dd63270SBarry Smith Vec v 866dd63270SBarry Smith PetscSection s 87*0da4d79bSMartin Diehl PetscInt point 883d1372b2SMartin Diehl end subroutine VecRestoreValuesSection 8902c639afSMartin Diehlend interface 903d1372b2SMartin Diehl 913d1372b2SMartin Diehl#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 923d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::PetscSFBcastBegin 933d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::PetscSFBcastEnd 943d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::PetscSFReduceBegin 953d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::PetscSFReduceEnd 963d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::VecRestoreOwnershipRanges 973d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::PetscSFRestoreGraph 983d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::VecRestoreValuesSection 993d1372b2SMartin Diehl#endif 100