xref: /petsc/src/vec/ftn-mod/petscvec.h90 (revision d47c0497e3b52bb8681c9d2e1026ce8506d72f69)
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