xref: /petsc/src/sys/ftn-mod/petscsys.h90 (revision 02c639afa00e507649aa5bac9084590bf17c181c)
1*02c639afSMartin Diehl      interface
2*02c639afSMartin Diehl        subroutine PetscPrintf(m, c, ierr)
3fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
46dd63270SBarry Smith          MPI_Comm :: m
56dd63270SBarry Smith          character(len=*) :: c
66dd63270SBarry Smith          PetscErrorCode :: ierr
7*02c639afSMartin Diehl        end subroutine
86dd63270SBarry Smith
96dd63270SBarry Smith#if defined(PETSC_HAVE_FORTRAN_FREE_LINE_LENGTH_NONE)
106dd63270SBarry Smith        subroutine PetscErrorf(ierr, line, file)
11fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
126dd63270SBarry Smith          PetscErrorCode, intent(in) :: ierr
136dd63270SBarry Smith          integer, intent(in) ::  line
146dd63270SBarry Smith          character(*) file
15*02c639afSMartin Diehl        end subroutine PetscErrorf
166dd63270SBarry Smith
176dd63270SBarry Smith        subroutine PetscErrorMPI(ierr, line, file)
18fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
196dd63270SBarry Smith          PetscErrorCode, intent(inout) :: ierr
206dd63270SBarry Smith          integer, intent(in) ::  line
216dd63270SBarry Smith          character(*) file
22*02c639afSMartin Diehl        end subroutine PetscErrorMPI
236dd63270SBarry Smith#else
246dd63270SBarry Smith        subroutine PetscErrorf(ierr)
25fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
266dd63270SBarry Smith          PetscErrorCode, intent(in) :: ierr
27*02c639afSMartin Diehl        end subroutine PetscErrorf
286dd63270SBarry Smith
296dd63270SBarry Smith        subroutine PetscErrorMPI(ierr)
30fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
316dd63270SBarry Smith          PetscErrorCode, intent(inout) :: ierr
32*02c639afSMartin Diehl        end subroutine PetscErrorMPI
336dd63270SBarry Smith#endif
346dd63270SBarry Smith
356dd63270SBarry Smith        subroutine MPIU_abort(comm, ierr)
36fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
376dd63270SBarry Smith          MPI_Comm, intent(in) ::  comm
386dd63270SBarry Smith          PetscErrorCode, intent(in) ::  ierr
396dd63270SBarry Smith        end subroutine
406dd63270SBarry Smith
416dd63270SBarry Smith        subroutine PetscViewerASCIIStdoutSetFileUnit(unit, z)
42fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
436dd63270SBarry Smith          integer4 unit
446dd63270SBarry Smith          PetscErrorCode, intent(out) :: z
456dd63270SBarry Smith        end subroutine
466dd63270SBarry Smith
476dd63270SBarry Smith        subroutine PetscLogEventBegin(event, ierr)
48fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
496dd63270SBarry Smith          PetscLogEvent, intent(in) :: event
506dd63270SBarry Smith          PetscErrorCode, intent(out) :: ierr
516dd63270SBarry Smith        end subroutine PetscLogEventBegin
526dd63270SBarry Smith
536dd63270SBarry Smith        subroutine PetscLogEventEnd(event, ierr)
54fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
556dd63270SBarry Smith          PetscLogEvent, intent(in) :: event
566dd63270SBarry Smith          PetscErrorCode, intent(out) :: ierr
576dd63270SBarry Smith        end subroutine PetscLogEventEnd
58*02c639afSMartin Diehl      end interface
596dd63270SBarry Smith
60*02c639afSMartin Diehl      interface
616dd63270SBarry Smith        function PetscASend(c, d) bind(c, name='PetscASend') result(i)
626dd63270SBarry Smith          use, intrinsic :: iso_c_binding
636dd63270SBarry Smith          implicit none
646dd63270SBarry Smith          integer(c_int), value :: c
656dd63270SBarry Smith          integer(c_int), value :: d
666dd63270SBarry Smith          integer(c_int)        :: i
676dd63270SBarry Smith        end function PetscASend
686dd63270SBarry Smith
696dd63270SBarry Smith        function PetscARecv(c, d) bind(c, name='PetscARecv') result(i)
706dd63270SBarry Smith          use, intrinsic :: iso_c_binding
716dd63270SBarry Smith          implicit none
726dd63270SBarry Smith          integer(c_int), value :: c
736dd63270SBarry Smith          integer(c_int), value :: d
746dd63270SBarry Smith          integer(c_int)        :: i
756dd63270SBarry Smith        end function PetscARecv
766dd63270SBarry Smith
776dd63270SBarry Smith        function PetscAReduce() bind(c, name='PetscAReduce') result(i)
786dd63270SBarry Smith          use, intrinsic :: iso_c_binding
796dd63270SBarry Smith          implicit none
806dd63270SBarry Smith          integer(c_int) :: i
816dd63270SBarry Smith        end function PetscAReduce
82*02c639afSMartin Diehl      end interface
836dd63270SBarry Smith
84*02c639afSMartin Diehl      interface
85*02c639afSMartin Diehl        subroutine PetscIntArray1dDestroy(a, ierr)
86fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
87*02c639afSMartin Diehl          PetscInt, pointer :: a(:)
886dd63270SBarry Smith          PetscErrorCode    :: ierr
89*02c639afSMartin Diehl        end subroutine
90*02c639afSMartin Diehl      end interface
916dd63270SBarry Smith
92*02c639afSMartin Diehl      interface PetscShmgetAllocateArrayScalar
93*02c639afSMartin Diehl        subroutine PetscShmgetAllocateArrayScalar(start, len, d1, ierr)
94fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
956dd63270SBarry Smith          PetscInt :: start, len
966dd63270SBarry Smith          PetscScalar, pointer :: d1(:)
976dd63270SBarry Smith          PetscErrorCode ierr
98*02c639afSMartin Diehl        end subroutine
99*02c639afSMartin Diehl      end interface
1006dd63270SBarry Smith
101*02c639afSMartin Diehl      interface PetscShmgetDeallocateArrayScalar
102*02c639afSMartin Diehl        subroutine PetscShmgetDeallocateArrayScalar(d1, ierr)
103fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
1046dd63270SBarry Smith          PetscScalar, pointer :: d1(:)
1056dd63270SBarry Smith          PetscErrorCode ierr
106*02c639afSMartin Diehl        end subroutine
107*02c639afSMartin Diehl      end interface
1086dd63270SBarry Smith
109*02c639afSMartin Diehl      interface PetscShmgetAllocateArrayInt
110*02c639afSMartin Diehl        subroutine PetscShmgetAllocateArrayInt(start, len, d1, ierr)
111fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
1126dd63270SBarry Smith          PetscInt :: start, len
1136dd63270SBarry Smith          PetscInt, pointer :: d1(:)
1146dd63270SBarry Smith          PetscErrorCode ierr
115*02c639afSMartin Diehl        end subroutine
116*02c639afSMartin Diehl      end interface
1176dd63270SBarry Smith
118*02c639afSMartin Diehl      interface PetscShmgetDeallocateArrayInt
119*02c639afSMartin Diehl        subroutine PetscShmgetDeallocateArrayInt(d1, ierr)
120fe66ebccSMartin Diehl          use, intrinsic :: ISO_C_binding
1216dd63270SBarry Smith          PetscInt, pointer :: d1(:)
1226dd63270SBarry Smith          PetscErrorCode ierr
123*02c639afSMartin Diehl        end subroutine
124*02c639afSMartin Diehl      end interface
125