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