xref: /petsc/src/vec/ftn-mod/petscvec.h90 (revision b06eb4cd3db6f436e3907d9ad23211c2914d8916)
16dd63270SBarry Smith#if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
202c639afSMartin Diehl      interface
36dd63270SBarry Smith        subroutine PetscSFBcastBegin(sf, unit, rarray, larray, op, ierr)
4fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
5*b06eb4cdSBarry Smith#if defined(PETSC_USE_MPI_F08)
6*b06eb4cdSBarry Smith          import tPetscSF, MPI_Datatype, MPI_Op
7*b06eb4cdSBarry Smith#else
86dd63270SBarry Smith          import tPetscSF
9*b06eb4cdSBarry Smith#endif
106dd63270SBarry Smith          PetscSF :: sf
11*b06eb4cdSBarry Smith          MPIU_Datatype :: unit
12*b06eb4cdSBarry Smith          MPIU_Op :: op
136dd63270SBarry Smith          type(*) :: rarray(:)
146dd63270SBarry Smith          type(*) :: larray(:)
156dd63270SBarry Smith          PetscErrorCode :: ierr
1602c639afSMartin Diehl        end subroutine PetscSFBcastBegin
176dd63270SBarry Smith
186dd63270SBarry Smith        subroutine PetscSFBcastEnd(sf, unit, rarray, larray, op, ierr)
19fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
20*b06eb4cdSBarry Smith#if defined(PETSC_USE_MPI_F08)
21*b06eb4cdSBarry Smith          import tPetscSF, MPI_Datatype, MPI_Op
22*b06eb4cdSBarry Smith#else
236dd63270SBarry Smith          import tPetscSF
24*b06eb4cdSBarry Smith#endif
256dd63270SBarry Smith          PetscSF :: sf
26*b06eb4cdSBarry Smith          MPIU_Datatype :: unit
27*b06eb4cdSBarry Smith          MPIU_Op :: op
286dd63270SBarry Smith          type(*) :: rarray(:)
296dd63270SBarry Smith          type(*) :: larray(:)
306dd63270SBarry Smith          PetscErrorCode :: ierr
3102c639afSMartin Diehl        end subroutine PetscSFBcastEnd
326dd63270SBarry Smith
336dd63270SBarry Smith        subroutine PetscSFReduceBegin(sf, unit, larray, rarray, op, ierr)
34fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
35*b06eb4cdSBarry Smith#if defined(PETSC_USE_MPI_F08)
36*b06eb4cdSBarry Smith          import tPetscSF, MPI_Datatype, MPI_Op
37*b06eb4cdSBarry Smith#else
386dd63270SBarry Smith          import tPetscSF
39*b06eb4cdSBarry Smith#endif
406dd63270SBarry Smith          PetscSF :: sf
41*b06eb4cdSBarry Smith          MPIU_Datatype :: unit
42*b06eb4cdSBarry Smith          MPIU_Op :: op
436dd63270SBarry Smith          type(*) :: larray(:)
446dd63270SBarry Smith          type(*) :: rarray(:)
456dd63270SBarry Smith          PetscErrorCode :: ierr
4602c639afSMartin Diehl        end subroutine PetscSFReduceBegin
476dd63270SBarry Smith
486dd63270SBarry Smith        subroutine PetscSFReduceEnd(sf, unit, larray, rarray, op, ierr)
49fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
50*b06eb4cdSBarry Smith#if defined(PETSC_USE_MPI_F08)
51*b06eb4cdSBarry Smith          import tPetscSF, MPI_Datatype, MPI_Op
52*b06eb4cdSBarry Smith#else
536dd63270SBarry Smith          import tPetscSF
54*b06eb4cdSBarry Smith#endif
556dd63270SBarry Smith          PetscSF :: sf
56*b06eb4cdSBarry Smith          MPIU_Datatype :: unit
57*b06eb4cdSBarry Smith          MPIU_Op :: op
586dd63270SBarry Smith          type(*) :: larray(:)
596dd63270SBarry Smith          type(*) :: rarray(:)
606dd63270SBarry Smith          PetscErrorCode :: ierr
6102c639afSMartin Diehl        end subroutine PetscSFReduceEnd
6202c639afSMartin Diehl      end interface
636dd63270SBarry Smith#endif
646dd63270SBarry Smith
656dd63270SBarry Smith      interface
666dd63270SBarry Smith        subroutine VecRestoreOwnershipRanges(v, ptr, ierr)
67fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
686dd63270SBarry Smith          import tVec
6911105114SMartin Diehl          Vec :: v
706dd63270SBarry Smith          PetscInt, pointer :: ptr(:)
7111105114SMartin Diehl          PetscErrorCode, intent(out) :: ierr
726dd63270SBarry Smith        end subroutine VecRestoreOwnershipRanges
736dd63270SBarry Smith
746dd63270SBarry Smith        subroutine PetscSFRestoreGraph(sf, nroots, nleaves, ilocal, iremote, ierr)
75fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
766dd63270SBarry Smith          import tPetscSF, sPetscSFNode
776dd63270SBarry Smith          PetscSF :: sf
786dd63270SBarry Smith          PetscInt :: nroots, nleaves
796dd63270SBarry Smith          PetscInt, pointer :: ilocal(:)
806dd63270SBarry Smith          type(sPetscSFNode), pointer :: iremote(:)
816dd63270SBarry Smith          PetscErrorCode :: ierr
8202c639afSMartin Diehl        end subroutine PetscSFRestoreGraph
836dd63270SBarry Smith
8402c639afSMartin Diehl        subroutine VecRestoreValuesSection(v, s, p, va, ierr)
85fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
866dd63270SBarry Smith          import tVec, tPetscSection
876dd63270SBarry Smith          PetscScalar, pointer :: va(:)
886dd63270SBarry Smith          PetscErrorCode ierr
896dd63270SBarry Smith          Vec v
906dd63270SBarry Smith          PetscSection s
916dd63270SBarry Smith          PetscInt p
9202c639afSMartin Diehl        end subroutine
9302c639afSMartin Diehl      end interface
94