У меня есть очень маленький пример кода на Фортране, который я хотел бы понять, пожалуйста.
subroutine test_iso_c
use ISO_C_BINDING
implicit real(c_double) (a-h,o-z)
real :: var, expression
interface
real(c_double) function test (y) bind( c )
use ISO_C_BINDING
real(c_double), value :: y
end
end interface
! call
var = test(expression) ! - expression is a real declared variable which is calculated using simple arithmetic operation.
end
Можете ли вы объяснить мне следующее (я предполагаю, что c_double означает двойную точность в области действия кода C?)
1 - Что означает implicit real(c_double) (a-h,o-z)
?
2 - что делает value
и bind(c)
в интерфейсе функций
3 - Я видел этот код какВы можете сказать, что обеспечивает / делает эта функция теста, часть более обширной процедуры?