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