real function sum_1d_array(argc, argv)
!
!dec$ attributes c, alias:'_sum_1d_array' :: sum_1d_array
!dec$ attributes c, alias:'_sum_1d_array_' :: sum_1d_array_
!
implicit none
integer, intent(in) :: argc
integer, intent(in), dimension(argc) :: argv
real, external :: sum_1d_array_
sum_1d_array = sum_1d_array_(%val(argv(1)), ! n
2 %val(argv(2)), ! array
3 %val(argv(3))) ! total
end
real function sum_1d_array_(n, array, total)
!
!dec$ attributes c, alias:'_sum_1d_array_' :: sum_1d_array_
!dec$ attributes reference :: n
!dec$ attributes reference :: array
!dec$ attributes reference :: total
!
implicit none
integer, intent(in) :: n
real, intent(in), dimension(n) :: array
real, intent(out) :: total
total = sum(array)
sum_1d_array_ = total
end