xref: /petsc/src/sys/ftn-mod/petscsys.h90 (revision 7e1a0bbe36d2be40a00a95404ece00db4857f70d)
1      interface
2        subroutine PetscPrintf(m, c, ierr)
3          use, intrinsic :: ISO_C_binding
4          MPI_Comm :: m
5          character(len=*) :: c
6          PetscErrorCode :: ierr
7        end subroutine
8
9#if defined(PETSC_HAVE_FORTRAN_FREE_LINE_LENGTH_NONE)
10        subroutine PetscErrorf(ierr, line, file)
11          use, intrinsic :: ISO_C_binding
12          PetscErrorCode, intent(in) :: ierr
13          integer, intent(in) ::  line
14          character(*) file
15        end subroutine PetscErrorf
16
17        subroutine PetscErrorMPI(ierr, line, file)
18          use, intrinsic :: ISO_C_binding
19          PetscErrorCode, intent(inout) :: ierr
20          integer, intent(in) ::  line
21          character(*) file
22        end subroutine PetscErrorMPI
23#else
24        subroutine PetscErrorf(ierr)
25          use, intrinsic :: ISO_C_binding
26          PetscErrorCode, intent(in) :: ierr
27        end subroutine PetscErrorf
28
29        subroutine PetscErrorMPI(ierr)
30          use, intrinsic :: ISO_C_binding
31          PetscErrorCode, intent(inout) :: ierr
32        end subroutine PetscErrorMPI
33#endif
34
35        subroutine MPIU_abort(comm, ierr)
36          use, intrinsic :: ISO_C_binding
37          MPI_Comm, intent(in) ::  comm
38          PetscErrorCode, intent(in) ::  ierr
39        end subroutine
40
41        subroutine PetscViewerASCIIStdoutSetFileUnit(unit, z)
42          use, intrinsic :: ISO_C_binding
43          integer4 unit
44          PetscErrorCode, intent(out) :: z
45        end subroutine
46
47        subroutine PetscLogEventBegin(event, ierr)
48          use, intrinsic :: ISO_C_binding
49          PetscLogEvent, intent(in) :: event
50          PetscErrorCode, intent(out) :: ierr
51        end subroutine PetscLogEventBegin
52
53        subroutine PetscLogEventEnd(event, ierr)
54          use, intrinsic :: ISO_C_binding
55          PetscLogEvent, intent(in) :: event
56          PetscErrorCode, intent(out) :: ierr
57        end subroutine PetscLogEventEnd
58      end interface
59
60      interface
61        function PetscASend(c, d) bind(c, name='PetscASend') result(i)
62          use, intrinsic :: iso_c_binding
63          implicit none
64          integer(c_int), value :: c
65          integer(c_int), value :: d
66          integer(c_int)        :: i
67        end function PetscASend
68
69        function PetscARecv(c, d) bind(c, name='PetscARecv') result(i)
70          use, intrinsic :: iso_c_binding
71          implicit none
72          integer(c_int), value :: c
73          integer(c_int), value :: d
74          integer(c_int)        :: i
75        end function PetscARecv
76
77        function PetscAReduce() bind(c, name='PetscAReduce') result(i)
78          use, intrinsic :: iso_c_binding
79          implicit none
80          integer(c_int) :: i
81        end function PetscAReduce
82      end interface
83
84      interface
85        subroutine PetscIntArray1dDestroy(a, ierr)
86          use, intrinsic :: ISO_C_binding
87          PetscInt, pointer :: a(:)
88          PetscErrorCode    :: ierr
89        end subroutine
90      end interface
91
92      interface PetscShmgetAllocateArrayScalar
93        subroutine PetscShmgetAllocateArrayScalar(start, len, d1, ierr)
94          use, intrinsic :: ISO_C_binding
95          PetscInt :: start, len
96          PetscScalar, pointer :: d1(:)
97          PetscErrorCode ierr
98        end subroutine
99      end interface
100
101      interface PetscShmgetDeallocateArrayScalar
102        subroutine PetscShmgetDeallocateArrayScalar(d1, ierr)
103          use, intrinsic :: ISO_C_binding
104          PetscScalar, pointer :: d1(:)
105          PetscErrorCode ierr
106        end subroutine
107      end interface
108
109      interface PetscShmgetAllocateArrayInt
110        subroutine PetscShmgetAllocateArrayInt(start, len, d1, ierr)
111          use, intrinsic :: ISO_C_binding
112          PetscInt :: start, len
113          PetscInt, pointer :: d1(:)
114          PetscErrorCode ierr
115        end subroutine
116      end interface
117
118      interface PetscShmgetDeallocateArrayInt
119        subroutine PetscShmgetDeallocateArrayInt(d1, ierr)
120          use, intrinsic :: ISO_C_binding
121          PetscInt, pointer :: d1(:)
122          PetscErrorCode ierr
123        end subroutine
124      end interface
125