module coddity
use iso_c_binding, only: c_double, c_int, c_int64_t
implicit none
contains
subroutine c_add(a, b, c) bind(c, name="c_add")
real(c_double), intent(in) :: a, b
real(c_double), intent(out) :: c
c = a + b
end subroutine c_add
! gh-9693
function wat(x, y) result(z) bind(c)
integer(c_int), intent(in) :: x, y
integer(c_int) :: z
z = x + 7
end function wat
! gh-25207
subroutine c_add_int64(a, b, c) bind(c)
integer(c_int64_t), intent(in) :: a, b
integer(c_int64_t), intent(out) :: c
c = a + b
end subroutine c_add_int64
! gh-25207
subroutine add_arr(A, B, C)
integer(c_int64_t), intent(in) :: A(3)
integer(c_int64_t), intent(in) :: B(3)
integer(c_int64_t), intent(out) :: C(3)
integer :: j
do j = 1, 3
C(j) = A(j)+B(j)
end do
end subroutine
end module coddity